一、安装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
四、持续踩坑持续更新
连载中。。。