Docker Hub 镜像加速

国内拉取镜像有时会遇到困难,对于学习或者开发者来说很难受,此时可以配置镜像加速。

安装Docker

官方安装脚本:

<span class="line">curl -fsSL https://get.docker.com | sh</span>

国内一键安装脚本

<span class="line">bash <(curl -sSL https://emohe.cn/docker.sh)</span>
手动离线安装Docker

下载 Docker:

官方文件下载地址——下载后上传到root目录

清华大学下载地址

<span class="line">tar xzvf docker-26.1.3.tgz # 替换版本号</span>
<span class="line">sudo mv docker/* /usr/local/bin/</span>

创建 Docker 服务文件

<span class="line">sudo vim /etc/systemd/system/docker.service</span>

添加以下内容

<span class="line">[Unit]</span>
<span class="line">Description=Docker Application Container Engine</span>
<span class="line">After=network-online.target firewalld.service</span>
<span class="line">Wants=network-online.target</span>

<span class="line">[Service]</span>
<span class="line">Type=notify</span>
<span class="line">ExecStart=/usr/local/bin/dockerd</span>
<span class="line">ExecReload=/bin/kill -s HUP $MAINPID</span>
<span class="line">Restart=always</span>
<span class="line">RestartSec=2</span>
<span class="line">StartLimitBurst=3</span>
<span class="line">StartLimitInterval=60s</span>
<span class="line">LimitNOFILE=infinity</span>
<span class="line">LimitNPROC=infinity</span>
<span class="line">LimitCORE=infinity</span>
<span class="line">Delegate=yes</span>
<span class="line">KillMode=process</span>

<span class="line">[Install]</span>
<span class="line">WantedBy=multi-user.target</span>

启动并启用 Docker 服务

<span class="line">sudo chmod +x /usr/local/bin/dockerd</span>
<span class="line">sudo systemctl daemon-reload</span>
<span class="line">sudo systemctl start docker</span>
<span class="line">sudo systemctl enable docker</span>

查看版本

<span class="line">docker -v</span>
手动离线安装Docker-compose

国内环境手动安装Docker-compose

点这里手动下载文件 上传到服务器的/usr/local/bin目录

重命名为docker-compose

<span class="line">sudo cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose</span>

增加执行权限

<span class="line">chmod +x /usr/local/bin/docker-compose</span>

验证安装

<span class="line">docker-compose --version</span>

注意: 由于是以二进制文件安装的docker-compose,所以运行命令有所变化,运行示例

<span class="line">docker-compose up -d</span>

区别在于中间的-,官方安装脚本是以插件形式安装的docker-compose,所以中间不需要-

配置加速地址

Ubuntu 16.04+、Debian 8+、CentOS 7+

创建或修改 /etc/docker/daemon.json

<span class="line">sudo mkdir -p /etc/docker</span>
<span class="line">sudo tee /etc/docker/daemon.json <<EOF</span>
<span class="line">{</span>
<span class="line"> "registry-mirrors": [</span>
<span class="line"> "https://docker.m.ixdev.cn",</span>
<span class="line"> "https://docker.1ms.run"</span>
<span class="line"> ]</span>
<span class="line">}</span>
<span class="line">EOF</span>
<span class="line">sudo systemctl daemon-reload</span>
<span class="line">sudo systemctl restart docker</span>

提示:如果不方便重启Docker服务,也可以不用设置全局加速地址,拉取镜像时增加加速地址即可,示例:

<span class="line">docker pull docker.1panel.live/library/mysql:5.7</span>

说明:library是一个特殊的命名空间,它代表的是官方镜像。如果是某个用户的镜像就把library替换为镜像的用户名。

Docker Desktop 配置

对于Windows系统的Docker Desktop用户,点击右上角设置,找到Docker Engine然后修改配置,修改后的示例:

<span class="line">{</span>
<span class="line"> "builder": {</span>
<span class="line"> "gc": {</span>
<span class="line"> "defaultKeepStorage": "20GB",</span>
<span class="line"> "enabled": true</span>
<span class="line"> }</span>
<span class="line"> },</span>
<span class="line"> "experimental": false,</span>
<span class="line"> "registry-mirrors": [</span>
<span class="line"> "https://docker.1ms.run",</span>
<span class="line"> "https://docker.1panel.live"</span>
<span class="line"> ]</span>
<span class="line">}</span>

然后点击右下角的Apply & restart保存并重启即可。

检查加速是否生效

查看docker系统信息 docker info,如果从结果中看到了你配置的加速地址,说明配置成功。

<span class="line">Registry Mirrors:</span>
<span class="line"> [...]</span>
<span class="line"> https://docker.1ms.run</span>
<span class="line"> https://docker.1panel.live</span>

使用代理拉取镜像

  • 注意:使用了加速源就别使用这个方法了
  • 此方法支持loginpush

创建配置文件

<span class="line">sudo mkdir -p /etc/systemd/system/docker.service.d</span>
<span class="line">sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf</span>

在文件中添加代理

<span class="line">[Service]</span>
<span class="line">Environment="HTTP_PROXY=http://127.0.0.1:1080"</span>
<span class="line">Environment="HTTPS_PROXY=http://127.0.0.1:1080"</span>

重启Docker

<span class="line">sudo systemctl daemon-reload</span>
<span class="line">sudo systemctl restart docker</span>

查看环境变量

<span class="line">sudo systemctl show --property=Environment docker</span>

本地流量转发到服务器

使用SSH反向转发把本地的10808端口的流量转发给远程服务器1080端口

<span class="line">ssh -R 1080:127.0.0.1:10808 root@服务器地址 -N</span>

-N 代表仅连接但不打开对话框


备用方法:打包镜像到本地

1:压缩保存镜像到本地

<span class="line">docker save 镜像名 > 镜像名.tar</span>

2:手动上传到另一个服务器

3:另一个服务器解压镜像

<span class="line">docker load < 镜像名.tar</span>

4:查看镜像

<span class="line">docker images</span>

Docker Hub 镜像测速

拉取镜像时,可使用 time 统计所花费的总时间。测速前记得移除本地的镜像。

例如:time docker pull node:latest

修改最大并发数加快镜像下载速度

/etc/docker/daemon.json

<span class="line">{</span>
<span class="line"> "registry-mirrors": [</span>
<span class="line"> "https://docker.m.ixdev.cn",</span>
<span class="line"> "https://docker.1ms.run"</span>
<span class="line"> ],</span>
<span class="line"> "max-concurrent-downloads": 10,</span>
<span class="line"> "max-concurrent-uploads": 10,</span>
<span class="line"> "max-download-attempts": 5,</span>
<span class="line"> "default-ulimits": {</span>
<span class="line"> "nofile": {</span>
<span class="line"> "Hard": 64000,</span>
<span class="line"> "Name": "nofile",</span>
<span class="line"> "Soft": 64000</span>
<span class="line"> }</span>
<span class="line"> }</span>
<span class="line">}</span>
<span class="line">sudo systemctl daemon-reload</span>
<span class="line">sudo systemctl restart docker</span>

为Docker启用IPV6

创建或修改/etc/docker/daemon.json文件

增加如下配置:

<span class="line">{</span>
<span class="line"> "ipv6": true,</span>
<span class="line"> "fixed-cidr-v6": "2001:db8:1::/64"</span>
<span class="line">}</span>

然后配置一下流量路由

重启:sudo systemctl restart docker

卸载Docker

<span class="line">sudo systemctl stop docker</span>
<span class="line">sudo apt-get purge docker-ce docker-ce-cli containerd.io</span>
<span class="line">sudo rm -rf /etc/docker /var/lib/docker</span>

Docker最新稳定加速源列表

企业级优质稳定加速源

提供者 镜像加速地址 说明 加速类型
CNIX https://docker.m.ixdev.cn 无限制&多仓库支持 Docker Hub
1panel https://docker.1panel.live 无限制 Docker Hub
轩辕镜像 https://docker.xuanyuan.me 无限制 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://mirror.ccs.tencentyun.com 仅限腾讯云机器 Docker Hub
南京大学 https://ghcr.nju.edu.cn ghcr加速 ghcr
南京大学 https://k8s.nju.edu.cn k8s加速 k8s
CNIX https://ghcr.m.ixdev.cn 无限制&多仓库支持 ghcr

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 容器名 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 /home 从容器复制到宿主机
复制文件 docker cp /home/data.yaml wordpress:/app 从宿主机复制到容器
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。