我最近在我的 Ubuntu 17.10 VM 上安装了 Docker 18.04.0-ce。在代理后面工作时,我在尝试登录 Docker Hub 注册表时遇到了困难。所以当我跑步时:
docker login -u <username> -p <cool password>
Run Code Online (Sandbox Code Playgroud)
我收到这条消息:
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)
Run Code Online (Sandbox Code Playgroud)
据我所做的研究得出的理解是,当您位于代理后面并且想要使用 Docker 时,即使设置了环境变量,您也需要相应地配置它:
http_proxy=<my_proxy>
https_proxy=<my_proxy>
HTTP_PROXY=<my_proxy>
HTTPS_PROXY=<my_proxy>
Run Code Online (Sandbox Code Playgroud)
其次,Docker 看起来有多个级别的代理配置,这意味着构建、容器和守护进程的不同配置。
我去配置了所有这些以匹配我的代理,但我仍然收到该消息。是的,我确实重新启动了服务和守护进程。
更新:
$ docker info
Containers: 8
Running: 0
Paused: 0
Stopped: 8
Images: 12
Server Version: 18.04.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 773c489c9c1b21a6d78b5c538cd395416ec50f88
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.13.0-39-generic
Operating System: Ubuntu 17.10
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 7.79GiB
Name: docker-vb
ID: 447I:6DFI:JZ7V:F6SZ:BUCB:IFB2:4HGT:MXK2:Y5H5:EECC:FIQN:SZOH
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
HTTP Proxy: http://<proxy_ip>:<proxy_port>
HTTPS Proxy: http://<proxy_ip>:<proxy_port>
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Run Code Online (Sandbox Code Playgroud)
小智 5
docker 登录通常需要使用 sudo 权限运行,因此请确保实际保留 HTTPS_PROXY 环境。简单地通过
export HTTPS_PROXY=<your proxy>
Run Code Online (Sandbox Code Playgroud)
或者简单地在命令行上传递它:
sudo HTTPS_PROXY=<your proxy> docker login -u <user> <registry>
Run Code Online (Sandbox Code Playgroud)
docker 守护进程不需要重新启动。上述工作正常(我们在工作中广泛使用代理)。
您的网络可达性、代理以及可能的注册表可能存在一些问题。docker日志可以提供一些线索:
乌班图:sudo journalctl -fu docker.service
RHEL:/var/log/messages | grep docker
| 归档时间: |
|
| 查看次数: |
18860 次 |
| 最近记录: |