Docker 在内网服务器通过配置代理访问外网拉取镜像

该文章引用自:http://roc.havemail.cn/archives/1640.html 感谢作者,我放到这里给自己留个备份。

作者原文介绍了《详解 Docker 的三种网络代理配置》,按理说,在服务器上直接配置 http_proxy 和 https_proxy 代理,所有的服务就都能访问外网了。但是实际操作过程中,发现配置了这两个环境变量,也让其生效了,Docker 仍然不能访问外网拉取镜像。

解决办法:

解决办法是采用了原作者文章中的第二种网络配置方式,配置方法如下:

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf
# 在文件中输入以下内容,替换成你家对应的 proxy 地址即可
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
# 保存退出,刷新 docker 服务并重启
sudo systemctl daemon-reload 
sudo systemctl restart docker

我的实际操作:

我的实际操作过程如下,可以看到没有配置之前的报错,和配置完成后,可以正常 docker pull 的日志:

root@gpdbs05:~# docker pull mysql
Using default tag: latest
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io: Temporary failure in name resolution
root@gpdbs05:~# sudo mkdir -p /etc/systemd/system/docker.service.d
root@gpdbs05:~# sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf
root@gpdbs05:~# sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
root@gpdbs05:~# sudo systemctl daemon-reload 
root@gpdbs05:~# sudo systemctl restart docker
root@gpdbs05:~# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
72a69066d2fe: Downloading [===================================>               ]  19.28MB/27.15MB
93619dbc5b36: Verifying Checksum 
99da31dd6142: Download complete 
626033c43d70: Download complete 
37d5d7efb64e: Download complete 
ac563158d721: Download complete 
d2ba16033dad: Download complete 
688ba7d5c01a: Download complete 
00e060b6d11d: Downloading [======>                                            ]  14.17MB/105.2MB
1c04857f594f: Download complete 
4d7cfa90e6ea: Download complete 
e0431212d27d: Download complete 

End~

拉取nginx镜像并进行配置,你可以按照以下步骤进行操作: 1. 使用命令`docker pull nginx`来拉取官方的nginx镜像。 2. 使用命令`docker run --name nginx -p 80:80 -d nginx`来生成一个名为`nginx`的容器,并将宿主机的80端口映射到容器的80端口上。 3. 进入容器内部并修改配置文件。你可以使用命令`docker exec -it nginx /bin/bash`进入容器内部的bash shell。然后,你可以编辑`/etc/nginx/nginx.conf`文件以进行配置。你可以根据需要修改虚拟主机的配置、添加代理规则或者修改缓存设置等等。 4. 在完成配置后,你可以使用命令`docker restart nginx`重新启动容器,使配置生效。 这样,你就可以拉取nginx镜像并进行配置了。请注意,以上步骤仅提供了一个基本的配置示例,具体的配置需求可能会因实际情况而有所不同。你可以根据自己的需求进行相应的配置修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker部署nginx](https://download.csdn.net/download/weixin_38752897/14037803)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [CentOS7下使用docker安装nginx](https://blog.csdn.net/magic_1024/article/details/103444103)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [docker-Nginx镜像拉取配置](https://blog.csdn.net/m0_55649935/article/details/132057159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿福Chris

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值