Docker 配置代理

Docker 配置代理

如果稍微了解docker的架构,会知道docker 只是客户端, 管理,查看容器状态docker ps/run 与容器建立连接docker exec 都是后台dockerd来完成的
所以客户端和服务端是单独的两个进程,https_proxy docker pull 是不走代理的, 那有时候registry 在公司,怎么办呢?

配置dockerd 走代理

很多人知道有 /etc/docker/daemon.json 文件可以配置很多选项,但唯独不能配置https_proxy, 只有通过systemd service配置

  1. 创建目录
sudo mkdir -p /etc/systemd/system/docker.service.d
  1. 创建文件
/etc/systemd/system/docker.service.d/http-proxy.conf
  1. 输入以下内容
[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:80/"

配置容器走代理

也就是配置容器内访问internet时,走的代理

有两种办法:

  1. home目录添加配置文件
cat ~/.docker/config.json

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://127.0.0.1:3001",
     "httpsProxy": "http://127.0.0.1:3001",
     "noProxy": "*.test.example.com,.example2.com"
   }
 }
}

  1. 通过-e 传环境变量实现
原文地址:https://www.cnblogs.com/hustcpp/p/13035926.html