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

四、持续踩坑持续更新

连载中。。。

你可能感兴趣的:(docker)