一、问题描述
当我用docker-compose up时,因为需要build Dockerfile文件,出现下面这个错误:
ERROR: Service 'web' failed to build: Get https://registry-1.docker.io/v2/library/python/manifests/2.7: net/http: TLS handshake timeout
二、问题解决
1、查看可用的ip地址
[root@docker-node1 compose-flask]# dig @114.114.114.114 registry-1.docker.io
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> @114.114.114.114 registry-1.docker.io
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38727
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;registry-1.docker.io. IN A
;; ANSWER SECTION:
registry-1.docker.io. 32 IN A 34.199.40.84
registry-1.docker.io. 32 IN A 34.201.196.144
registry-1.docker.io. 32 IN A 34.228.211.243
registry-1.docker.io. 32 IN A 34.232.31.24
registry-1.docker.io. 32 IN A 52.55.198.220
registry-1.docker.io. 32 IN A 52.202.253.107
registry-1.docker.io. 32 IN A 52.201.142.14
registry-1.docker.io. 32 IN A 34.199.77.19
;; Query time: 49 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 二 2月 04 14:15:50 CST 2020
;; MSG SIZE rcvd: 177
通过dig @114.114.114.114 registry-1.docker.io命令查看所有的可用地址。
2、修改/etc/hosts文件
可以将上述可用的ip以下面这种方式写入:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#写入可用的ip
34.199.40.84 registry-1.docker.io
34.201.196.144 registry-1.docker.io
然后进行文件保存,重新执行docker-compose up命令,问题解决。
来源:oschina
链接:https://my.oschina.net/u/4391831/blog/3312436