CentsOS安裝docker踩到的那些坑

一、安裝docker

1.前提條件

目前,CentOS 僅發行版本中的內核支持 Docker。Docker 運行在 CentOS 7 上,要求系統爲64位、系統內核版本爲 3.10 以上。Docker 運行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系統爲64位、系統內核版本爲 2.6.32-431 或者更高版本。

2.使用yum安裝

通過 uname -r 命令查看你當前的內核版本

3.移除舊版本

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

4安裝一些必要的系統工具

yum install -y yum-utils device-mapper-persistent-data lvm2

5.添加軟件源信息

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6.更新 yum 緩存

yum makecache fast

7.安裝 Docker-ce

yum -y install docker-ce

8.啓動 Docker 後臺服務

systemctl start docker

9.鏡像加速   vim /etc/docker/daemon.json,在該配置文件中加入(沒有該文件的話,請先建一個

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

10.測試能否使用,運行hello-world

docker run hello-world

二、第一個坑

# docker search centos
Error response from daemon: Get https://index.docker.io/v1/search?q=centos: x509: certificate has expired or is not yet valid

在search搜索的時候就出現了這個錯誤。

原因:一般都是本地系統時間錯誤導致報錯證書過期,所以先查看本地系統時間

解決辦法:

1.查看當前虛擬機的時間,使用date命令

2.如果發現和當前實際時間一致,那你就不需要看下去了,可能就不是我遇到的這個情況,需另找它法;如果是錯誤的修改當前虛擬機的時間和實際時間一致即可。命令格式爲:date -s "YYYY-MM-DD  hh:mm:ss" &&hwclock --systohc

三、第二個坑

➜  ~ docker search sameersbn
Error response from daemon: Get https://index.docker.io/v1/search?q=sameersbn&n=25: dial tcp: lookup index.docker.io on 192.168.65.1:53: read udp 192.168.65.2:45190->192.168.65.1:53: i/o timeout

➜  ~ docker pull sameersbn
Using default tag: latest
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)
➜  ~

1、安裝dig

yum install bind-utils

2、182.18.32.18 爲本機的DNS(查看DNS:cat /etc/resolv.conf)   通過dig @182.18.32.18  registry-1.docker.io 找到可用IP

[root@dockermaster ~]# dig @182.18.32.18  registry-1.docker.io 

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> @182.18.32.18 registry-1.docker.io
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1522
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 6, ADDITIONAL: 12


;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;registry-1.docker.io. IN A


;; ANSWER SECTION:
registry-1.docker.io. 60 IN A 52.22.181.254
registry-1.docker.io. 60 IN A 54.152.209.167
registry-1.docker.io. 60 IN A 34.200.90.16
registry-1.docker.io. 60 IN A 34.200.28.105
registry-1.docker.io. 60 IN A 52.204.202.231
registry-1.docker.io. 60 IN A 34.205.207.96
registry-1.docker.io. 60 IN A 54.164.230.151
registry-1.docker.io. 60 IN A 35.169.231.249


;; AUTHORITY SECTION:
io. 118861 IN NS b0.nic.io.
io. 118861 IN NS a2.nic.io.
io. 118861 IN NS c0.nic.io.
io. 118861 IN NS a0.nic.io.
io. 118861 IN NS ns-a1.io.
io. 118861 IN NS ns-a3.io.


;; ADDITIONAL SECTION:
ns-a3.io. 79825 IN A 74.116.178.1
ns-a1.io. 82329 IN A 194.0.1.1
ns-a1.io. 9891 IN AAAA 2001:678:4::1
a0.nic.io. 12120 IN A 65.22.160.17
a0.nic.io. 44508 IN AAAA 2a01:8840:9e::17
a2.nic.io. 12120 IN A 65.22.163.17
a2.nic.io. 20413 IN AAAA 2a01:8840:a1::17
c0.nic.io. 12120 IN A 65.22.162.17
c0.nic.io. 12120 IN AAAA 2a01:8840:a0::17
b0.nic.io. 12120 IN A 65.22.161.17
b0.nic.io. 44508 IN AAAA 2a01:8840:9f::17


;; Query time: 765 msec
;; SERVER: 182.18.32.18#53(182.18.32.18)
;; WHEN: 三 6月 20 09:56:04 CST 2018
;; MSG SIZE  rcvd: 525

3、嘗試修改/etc/hosts強制docker.io相關的域名解析到其它可用IP (一般取第一個)

vim /etc/hosts

加上
52.22.181.254 registry-1.docker.io
保存退出即可

4.重新search或者pull

四、持續踩坑持續更新

連載中。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章