宿主机挂代理docker无法拉去镜像问题

宿主机本来无法直接上公网,通过添加网络代理后可以上网,但是docker仍然无法拉去镜像,报错如下:

docker: Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: tls: first record does not look like a TLS handshake.
See 'docker run --help'.
Dec 24 14:07:00 docker dockerd[4517]: time="2021-12-24T22:07:00.377857491+08:00" level=warning msg="Error getting v2 registry: Get https://registry-1.docker.io/v2/: proxyconnec
t tcp: tls: first record does not look like a TLS handshake"Dec 24 14:07:00 docker dockerd[4517]: time="2021-12-24T22:07:00.377893617+08:00" level=info msg="Attempting next endpoint for pull after error: Get https://registry-1.docker.io
/v2/: proxyconnect tcp: tls: first record does not look like a TLS handshake"Dec 24 14:07:00 docker dockerd[4517]: time="2021-12-24T22:07:00.377916201+08:00" level=error msg="Handler for POST /v1.40/images/create returned error: Get https://registry-1.d
ocker.io/v2/: proxyconnect tcp: tls: first record does not look like a TLS handshake"

原因是因为docker 需要单独配置代理

创建docker服务

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

编辑服务内容

sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
#写入内容例如:
[Service]
Environment="HTTP_PROXY=http://代理账号:代理密码@192.168.*.*:80/"
#如有本地镜像源需要再次过滤本地ip:
Environment="NO_PROXY=localhost,127.0.0.1"

更新systemd管理器

sudo systemctl daemon-reload
sudo systemctl stop docker
sudo systemctl start docker

查看docker的环境变量

systemctl show --property=Environment docker

重新拉取竟像试试

本文仅提供解决思路。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容