目录背景在某些情况中,服务器无法直接访问外网,必要通过网络代理举行连接。固然我们通常会在 [code]/etc/environment[/code] 或 [code]/etc/profile[/code] 等体系设置文件中直接设置代理,但 Docker 命令无法利用这些设置。比方,在利用 [code]docker pull[/code] 命令从外网拉取镜像时,大概会遇到如下错误: [code]docker pull hello-world Unable to find image 'hello-world:latest' locally Pulling repository docker.io/library/hello-world docker: Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/hello-world/images. You may want to check your internet connection or if you are behind a proxy.. See 'docker run --help'. [/code]办理方案防火墙设置在举行 Docker 代理设置之前,建议先检查防火墙设置,确保相干端口已开放。以下是在 CentOS 7 上检察、防火墙状态以及启用/停用防火墙的方法: 检察防火墙状态: [code]systemctl status firewalld [/code]示例输出: 关闭防火墙: [code]systemctl stop firewalld [/code]开启防火墙: [code]systemctl start firewalld [/code]禁用防火墙(防止开机自动启动): [code]systemctl disable firewalld [/code]启用防火墙(设置为开机自动启动): [code]systemctl enable firewalld [/code]检查已开放的端口: [code]firewall-cmd --list-ports [/code]在举行 Docker 代理设置时,如果防火墙开启,确保相干代理端口(如 2375, 1230)已通过防火墙放行。 方案一:通过手动启动 Docker Daemon 设置代理制止 Docker 服务: [code]systemctl stop docker.service [/code]手动启动 Docker Daemon,监听全部网络接口: [code]nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock & [/code]更多详情可参考 Docker Daemon Socket 选项。 方案二:设置体系级代理(不推荐)可以通过修改体系设置文件来设置代理,如 Ubuntu 的 [code]/etc/default/docker[/code] 或 CentOS 的 [code]/etc/sysconfig/docker[/code] 文件,但这种方法已不再推荐利用。具体设置如下: [code]HTTP_PROXY="http://[proxy-addr]:[proxy-port]/" HTTPS_PROXY="https://[proxy-addr]:[proxy-port]/" export HTTP_PROXY HTTPS_PROXY [/code]方案三:长期化的 Docker 代理设置这种方法将代理设置长期化,使其在 Docker 服务每次启动时收效。 创建 Docker 服务的 systemd 设置目录: [code]mkdir -p /etc/systemd/system/docker.service.d [/code]创建代理设置文件 [code]/etc/systemd/system/docker.service.d/http-proxy.conf[/code] 并添加以下内容: [code][Service] Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/" [/code]如果有不必要利用代理访问的内部 Docker 镜像仓库,可以设置 [code]NO_PROXY[/code] 变量: [code][Service] Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com" [/code]重新加载设置: [code]systemctl daemon-reload [/code]重启 Docker 服务: [code]systemctl restart docker [/code]更多细节请参考 Docker systemd 设置指南。 利用 SOCKS5 代理要为 Docker 设置 SOCKS5 代理,可以按以下步骤操作: 编辑 Docker 服务文件 [code]/usr/lib/systemd/system/docker.service[/code]: [code][Service] Environment="HTTP_PROXY=socks5://127.0.0.1:1230/" Environment="HTTPS_PROXY=socks5://127.0.0.1:1230/" Environment="NO_PROXY=localhost,127.0.0.1,m1empwb1.mirror.aliyuncs.com,docker.io,registry.cn-hangzhou.aliyuncs.com" [/code]重新加载服务设置并重启 Docker: [code]systemctl daemon-reload systemctl restart docker [/code]验证代理设置: [code]systemctl show --property=Environment docker [/code]如果输出的内容中包罗 [code]127.0.0.1:1230[/code] 这样的地址,表现设置乐成。 测试可以通过 [code]docker pull[/code] 命令测试代理设置是否收效: [code]docker pull gcr.io/kubernetes-helm/tiller:v2.2.2 [/code]利用 [code]ss -antp |grep EST |egrep '1080|1230'[/code] 命令检察连接状态,确保代理设置已收效。 到此这篇关于Docker 网络代理设置及防火墙设置的方法步骤的文章就先容到这了,更多相干Docker 网络代理设置及防火墙设置内容请搜刮脚本之家以前的文章或继承浏览下面的相干文章希望大家以后多多支持脚本之家! 来源:https://www.jb51.net/server/328506n2w.htm 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-1 19:34 , Processed in 0.036326 second(s), 19 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.