Docker 配置代理
Docker 配置代理
如果稍微了解docker的架构,会知道docker 只是客户端, 管理,查看容器状态docker ps/run
与容器建立连接docker exec
都是后台dockerd来完成的
所以客户端和服务端是单独的两个进程,https_proxy docker pull
是不走代理的, 那有时候registry 在公司,怎么办呢?
配置dockerd 走代理
很多人知道有 /etc/docker/daemon.json 文件可以配置很多选项,但唯独不能配置https_proxy, 只有通过systemd service配置
- 创建目录
sudo mkdir -p /etc/systemd/system/docker.service.d
- 创建文件
/etc/systemd/system/docker.service.d/http-proxy.conf
- 输入以下内容
[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:80/"
配置容器走代理
也就是配置容器内访问internet时,走的代理
有两种办法:
- 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"
}
}
}
- 通过-e 传环境变量实现