多种 Docker 镜像拉取解决方案与实践

最近国内 Docker 镜像拉取不太通畅,尝试了几种镜像拉取的方式,写篇博客分享一下。

原以为只是 docker hub 被毙了,上机器一操作,官方的下载地址也被毙了,真是从源头解决问题==。

不过还好目前还有其他源能用,已经有大神把各种源整理成脚本,常用的 Linux 系统可以一个脚本解决。

如何修改镜像仓库

在 Docker 中,可以修改daemon.json来修改镜像仓库。

Linux

在 Linux 系统中,Docker 的配置文件通常位于 /etc/docker/daemon.json

如果用的是无根用户模式 (rootless mode),配置文件则位于 ~/.config/docker/daemon.json。 当然也可以在启动 Docker 守护进程时,通过 --config-file 标志明确指定配置文件的位置。

如果你没有添加过配置,就需要在/etc/docker/创建文件daemon.json, 然后通过 registry-mirrors 来指定镜像仓库。修改完成后,重启服务。示例如下:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
群晖

群晖的用户在容器仓库的设置中就可以加了。

几种解决方案

从网盘下载/淘宝购买

不得不佩服国人的商业嗅觉,镜像拉取不通畅后,淘宝上立马就出现了相关的服务。给人远程拉镜像 或 把镜像放到百度网盘等卖。。

这一类是非常不建议去使用的,一方面镜像可以很容易的被修改,安全隐患大;另一方面确实没必要。

使用代理

如果自己会搭梯子,或者有买梯子的同学,就不用折腾了,直接使用全局代理或者给 Docker 服务配置代理即可。

下面是单独给 Docker 服务配置代理的方法。

Liunx

在Linux上,有多种方式给 Docker 配置代理,这里说常用的两种。

  • 一种是直接找到 Docker service 的文件,直接在 [Service] 模块下加入代理配置,如:
# 通过 systemctl status 可以看到 Service 文件目录 
$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

$ sduo vi /usr/lib/systemd/system/docker.service

# 在 `[Service]` 模块加入配置即可
[Service]
Environment="HTTP_PROXY=http://192.168.10.1:7890" # 换成你的代理地址
Environment="HTTPS_PROXY=http://192.168.10.1:7890" # 换成你的代理地址
Environment="NO_PROXY=localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,fd00::/8,example.com"  # 不需要走代理的地址。
  • 还可以通过systemd的 drop-in 文件来配置HTTP代理, 操作如下:
# 创建 /etc/systemd/system/docker.service.d/http-proxy.conf 文件
$ sudo mkdir -p /etc/systemd/system/docker.service.d/
$ sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf

# 在其中加入下面的内容
[Service]
Environment="HTTP_PROXY=http://192.168.10.1:7890" # 换成你的代理地址
Environment="HTTPS_PROXY=http://192.168.10.1:7890" # 换成你的代理地址
Environment="NO_PROXY=localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,fd00::/8,example.com" # 不需
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值