Docker Hub 镜像加速
国内拉取镜像有时会遇到困难,对于学习或者开发者来说很难受,此时可以配置镜像加速。
安装Docker
官方安装脚本:
curl -fsSL https://get.docker.com | sh
国内安装脚本 (脚本来源)
bash <(curl -sSL https://gitee.com/wanfeng789/shell/raw/master/docker.sh)
或者使用清华大学源
bash <(curl -sSL https://gitee.com/wanfeng789/shell/raw/master/install.sh) --mirror Tuna
手动离线安装Docker
下载 Docker:
tar xzvf docker-26.1.3.tgz # 替换版本号
sudo mv docker/* /usr/local/bin/
创建 Docker 服务文件
sudo vim /etc/systemd/system/docker.service
添加以下内容
[Unit]
Description=Docker Application Container Engine
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
RestartSec=2
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
启动并启用 Docker 服务
sudo chmod +x /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker
查看版本
docker -v
手动离线安装Docker-compose
国内环境手动安装Docker-compose
点这里手动下载文件 上传到服务器的/usr/local/bin
目录
重命名为docker-compose
sudo cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
增加执行权限
chmod +x /usr/local/bin/docker-compose
验证安装
docker-compose --version
注意: 由于是以二进制文件安装的docker-compose
,所以运行命令有所变化,运行示例
docker-compose up -d
区别在于中间的-
,官方安装脚本是以插件形式安装的docker-compose
,所以中间不需要-
配置加速地址
Ubuntu 16.04+、Debian 8+、CentOS 7+
创建或修改 /etc/docker/daemon.json
:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://hub.rat.dev",
"https://docker.1panel.live"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
提示:如果不方便重启Docker服务,也可以不用设置全局加速地址,拉取镜像时增加加速地址即可,示例:
docker pull docker.1panel.live/library/mysql:5.7
说明:library
是一个特殊的命名空间,它代表的是官方镜像。如果是某个用户的镜像就把library
替换为镜像的用户名。
Docker Desktop 配置
对于电脑的Docker Desktop
用户,点击右上角设置
,找到Docker Engine
然后修改配置,修改后的示例:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.1ms.run",
"https://hub.rat.dev",
"https://docker.1panel.live"
]
}
然后点击右下角的Apply & restart
保存并重启即可。
检查加速是否生效
查看docker系统信息 docker info
,如果从结果中看到了你配置的加速地址,说明配置成功。
Registry Mirrors:
[...]
https://docker.1panel.live
使用代理拉取镜像
- 注意:使用了加速源就别使用这个方法了
创建配置文件
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
在文件中添加代理
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:1080"
Environment="HTTPS_PROXY=http://127.0.0.1:1080"
重启Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
查看环境变量
sudo systemctl show --property=Environment docker
备用方法:打包镜像到本地
1:压缩保存镜像到本地
docker save 镜像名 > 镜像名.tar
2:手动上传到另一个服务器
3:另一个服务器解压镜像
docker load < 镜像名.tar
4:查看镜像
docker images
Docker Hub 镜像测速
拉取镜像时,可使用 time
统计所花费的总时间。测速前记得移除本地的镜像。
例如:time docker pull node:latest
为Docker启用IPV6
创建或修改/etc/docker/daemon.json
文件
增加如下配置:
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
重启:sudo systemctl restart docker
卸载Docker
sudo systemctl stop docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /etc/docker /var/lib/docker
Docker最新稳定加速源列表
企业自建的镜像加速,一般很稳定不会被和谐
提供者 | 镜像加速地址 | 说明 | 加速类型 |
---|---|---|---|
耗子面板 | https://hub.rat.dev | 无限制 | Docker Hub |
1panel | https://docker.1panel.live | 无限制 | Docker Hub |
1panel | https://proxy.1panel.live | 无限制 | Docker Hub |
毫秒镜像 | https://docker.1ms.run | 国内CDN & 有黑名单 | Docker Hub |
DaoCloud | https://docker.m.daocloud.io | 白名单和限流 | Docker Hub |
华为云 | https://***.mirror.swr.myhuaweicloud.com | 需登录分配 | Docker Hub |
南京大学 | https://ghcr.nju.edu.cn | ghcr加速 | ghcr |
南京大学 | https://k8s.nju.edu.cn | k8s加速 | k8s |
Docker常用命令:
功能 | 命令 | 说明 |
---|---|---|
编译镜像 | docker build -t 镜像名 . | 先docker login 登录docker hub |
推送镜像 | docker push 用户名/镜像名 | 需先标记镜像 docker tag 53321f173e 用户名/镜像名 |
查看容器 | docker ps | -a 查看包括已停止的容器 |
容器资源占用 | docker stats | 查看所有容器资源占用 |
容器详细信息 | docker inspect | 挂载看Mounts 网络看Networks |
进入容器内部 | docker exec -it 容器名 /bin/sh | 结尾使用/bash 也行 |
创建容器网络 | docker network create my-network | my-network 为网络名称 |
容器加入网络 | docker network connect my-network 容器名 | 替换容器名或ID |
宿主机网络 | network_mode: host | docker-compose 使用 |
宿主机网络 | --network host | docker run 使用 |
查看网络 | docker network inspect my-network | 查看my-network 网络中的容器 |
停止容器 | docker stop | docker stop 容器名或ID |
启动容器 | docker start | docker start 容器名或ID |
重启容器 | docker restart | docker restart 容器名或ID |
删除容器 | docker rm | docker rm 容器名或ID |
查看镜像 | docker images | docker images 镜像名或ID |
删除镜像 | docker rmi -f | docker rmi -f 镜像名或ID |
清除资源 | docker system prune | 清除所有未使用资源容器 网络 镜像 缓存 |
删除所有镜像 | docker rmi -f $(docker images -aq) | 删除所有镜像 |
删除所有容器 | docker container prune -f | 删除所有已停止容器 |
停止所有容器 | docker stop $(docker ps -aq) | 停止所有容器 |
停止并删除 | docker compose down | 停止并删除编排容器 |
重新创建容器 | docker compose up -d --force-recreate | 强制删除并重启编排容器 |
复制文件 | docker cp wordpress:/app/data.yaml /hemo | 从容器复制到宿主机 |
复制文件 | docker cp /home/data.yaml wordpress:/app | 从宿主机复制到容器 |
buildx
命令介绍
Docker Buildx
是一个 docker CLI
插件,其扩展了 docker
命令,支持 Moby BuildKit
提供的功能。提供了与 docker build
相同的用户体验,并增加了许多新功能。
注意该功能需要 Docker v19.03
以上的版本。
主要特点:
- 并发构建多种架构
- 自动垃圾收集
- 可扩展的前端格式
- 并发依赖解析
- 高效指令缓存
- 构建缓存导入/导出
- 嵌套构建作业调用
- 可分配的 worker
- 多种输出格式
- 可插入式架构
- 无需root权限执行
简单的使用(更多强大的功能请自行搜索相关文档)
- 确保已安装 QEMU 模拟器支持
docker run --privileged --rm tonistiigi/binfmt --install all
- 创建新的构建器实例
docker buildx create --name mybuilder --driver docker-container
docker buildx use mybuilder
docker buildx inspect --bootstrap
- 构建多架构镜像并输出到本地
docker buildx build \
--platform linux/amd64,linux/arm64,linux/arm/v7 \
-t myapp:latest \
--load \
.
- 查看构建的镜像
docker images
- 测试运行特定架构的镜像
docker run --rm --platform linux/amd64 myapp:latest
docker run --rm --platform linux/arm64 myapp:latest
docker run --rm --platform linux/arm/v7 myapp:latest
- 如果要删除构建器
docker buildx rm mybuilder