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 傳環境變量實現