宿主机本来无法直接上公网,通过添加网络代理后可以上网,但是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
重新拉取竟像试试
本文仅提供解决思路。