不提供代理,只是在有代理伺服器的情況下一些 Docker 代理配置。
關於 docker run 報錯
正常安裝 docker 完畢後,可以使用
docker run hello-world
來執行,但是發現報錯
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
建立配置檔案
sudo mkdir /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
我的 代理只有 http 和 socks代理 ,這裡面http 和 https 填一致即可。
[Service]
Environment="HTTP_PROXY=http://YourProxy/"
Environment="HTTPS_PROXY=http://YourProxy/"
關於 docker pull 報錯
Using default tag: latest
latest: Pulling from library/redis
Get "https://registry-1.docker.io/v2/library/redis/manifests/sha256:d2ff3ceb3ef5317df7d224fc019687705276b4b1f8b37033c12e35bbe94b0514": net/http: TLS handshake timeout
我的解決方案是 使用 proxychains。
# step1
sudo yum install -y git gcc make
# step2
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
sudo make install-config
新增配置
vi /etc/proxychains.conf
#該配置 結尾新增
http YourHTTPProxyIP YourHTTPProxyPort
socks4 YourSocksProxyIP YourSocksProxyPort
最後執行你的命令前假加上 proxychains4
proxychains4 docker pull redis
雖然不知道第一個為什麼不能解決pull 。個人猜測是 docker 不支援 socks代理。
最後配置代理