Docker Error response from daemon,Docker 換映象
Docker換映象,Docker pull、Docker search 失敗出現以下錯誤
Error response from daemon: Get https://index.docker.io/v1/search?q=php&n=25: net/http: TLS handshake timeout
Error response from daemon: Get https://index.docker.io/v1/search?q=php&n=25Service Unavailable
解決這個pull、search問題用以下幾個處理方式:
1. 更新配置:daemon.json
## 編輯檔案vim /etc/docker/daemon.json
## 將以下內容複製到檔案中
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
重啟Docker
systemctl restart docker
2. 調整DNS:resolv.conf
## 編輯檔案
vi /etc/resolv.conf
## 將以下內容複製到檔案中 nameserver 8.8.8.8 nameserver 8.8.8.4
重啟network
## centos
systemctl restart network
## mac ifconfig en0 down ifconfig en0 up
mac也可以這樣增加:點選Wi-Fi->高階->DNS->點選'+',增加"8.8.8.8","8.8.8.4",點選應用->完成。
3. 修改hosts:hosts
## 找到可用的IP地址,輸入以下命令:
dig @114.114.114.114 registry-1.docker.io
## 出現如下:
J-pro:~ will$ dig @114.114.114.114 registry-1.docker.io
; <<>> DiG 9.10.6 <<>> @114.114.114.114 registry-1.docker.io
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13913
;; 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. 41 IN A 52.54.232.21
registry-1.docker.io. 41 IN A 52.72.232.213
registry-1.docker.io. 41 IN A 18.232.227.119
registry-1.docker.io. 41 IN A 34.195.246.183
registry-1.docker.io. 41 IN A 3.223.220.229
registry-1.docker.io. 41 IN A 3.224.175.179
registry-1.docker.io. 41 IN A 3.94.35.164
registry-1.docker.io. 41 IN A 52.4.20.24
;; Query time: 99 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Sun Jul 26 11:22:46 CST 2020
;; MSG SIZE rcvd: 177
將上述IP找任意找一個輸入到hosts中
## 編輯hosts檔案
vi /etc/hosts ## 加入上述找到的可用IP地址 52.87.94.70 registry-1.docker.io
## 重新整理hosts source /etc/hosts
4.如果上述的方法還是不行的話,請檢查以下有沒有使用一些代理抓包軟體,如:Charles。
> 開啟Charles軟體,選中 macOs Proxy。再試試看,很有可能是代理的問題導致的網路連線不可用,甚至可能其他軟體也聯網不了。