【运维】在centos7系统中如何给docker配置代理

一、需求场景

生产环境私有云中,通常一个集群的机器中只有几台机器可以直接访问公网,其他机器需要通过代理的方式从能访问公网的机器出去,在已经做了如下配置之后,使用docker pull命令已经报错超时timeout,这时可以尝试给docker服务配置代理解决。

报错信息如下:

[root@iZjz801fwrm6zwvn5l16uoZ portainer]# docker pull portainer/portainer
Using default tag: latest
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 114.114.114.114:53: read udp 192.168.131.10:38902->114.114.114.114:53: i/o timeout
[root@iZjz801fwrm6zwvn5l16uoZ portainer]#

在这里插入图片描述
/etc/docker/daemon.json 配置如下

{
  "registry-mirror": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "insecure-registries": [
    "reg.xxx.com"
  ]
}

在能访问互联网的机器192.168.131.10部署了代理软件squid

/etc/profile中添加代理,添加后curl可以访问百度,docker pull依旧报错timeout

export all_proxy=http://192.168.131.10:31280
export http_proxy=http://192.168.131.10:31280
export https_proxy=http://192.168.131.10:31280
export no_proxy=localhost,127.0.0.1,::1,192.168.131.0/22

二、docker服务系统代理配置

在CentOS 7系统中,如果你想要配置Docker使用系统代理来执行docker pull等操作,你需要为Docker守护进程指定代理设置。以下是步骤:

1. 创建或编辑Docker服务的systemd drop-in文件

首先,创建一个名为http-proxy.conf的文件在/etc/systemd/system/docker.service.d/目录中。如果目录不存在,则需要创建它:

mkdir -p /etc/systemd/system/docker.service.d

然后,使用你喜欢的文本编辑器(如nano或vi)创建或编辑http-proxy.conf文件:

vim /etc/systemd/system/docker.service.d/http-proxy.conf

2. 添加代理配置

在http-proxy.conf文件中,添加如下内容以设置HTTP和HTTPS代理:

[Service]
Environment="HTTP_PROXY=http://192.168.131.10:31280/"
Environment="HTTPS_PROXY=http://192.168.131.10:31280/"

如果你的网络环境中存在一些不需要通过代理访问的内部或本地地址,你还可以添加一个NO_PROXY环境变量:

Environment="NO_PROXY=localhost,127.0.0.1,::1,192.168.131.0/22,.your-company.com"

3. 重新加载并重启Docker服务

配置完代理之后,重新加载systemd管理器的配置,然后重启Docker服务以应用更改:

systemctl daemon-reload
systemctl restart docker

4. 验证配置

为了验证代理配置是否已正确应用到Docker服务,你可以查看Docker服务的环境变量:

systemctl show --property=Environment docker

这将显示Docker服务的环境变量,包括刚刚配置的代理设置。
在这里插入图片描述
现在,你的Docker客户端应该会使用指定的代理服务器来拉取镜像和执行其他网络操作。
在这里插入图片描述

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值