docker官网安装地址
Install Docker Engine on CentOS | Docker Documentation
#卸载旧的版本
yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
备注 以前叫做docker 或者docker-engine 现在新的叫做docker-ce
#下载需要的安装包
sudo yum install -y yum-utils
# 设置镜像仓库 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
#更新yum软件包索引
yum makecache fast
#docker-ce 是社区版,docker-ee 企业版
sudo yum install docker-ce docker-ce-cli containerd.io
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://axvfsf7e.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
卸载
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
安装完了之后启动报错???唉
查看centos版本 7.2符合最新版的安装要求
错误明细
[root@node25 /etc/docker]# systemctl start docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
此处提示我们systemctl status docker.service 和journalctl -xe
查看结果
start request repeated too quickly for docker.service
Failed to start Docker Application Container Engine
docker.service holdoff time over, scheduling restart.
提取关键话 反正就是失败了? 为啥失败具体原因一概不错,感觉问题不大 直接百度,(大坑)
百度经验大多分为一下几种
1.selinux-enabled问题 vim /etc/sysconfig/docker:这个内核的SELinux不支持overlay2图形驱动,要么更新内核或者关掉SELinux。不用尝试。我下的18.09.7版本根本没有这个文件。等下具体分析下
2./etc/docker/daemon.json 有非法字符,可以发现我反复检查,反复修改 发现一点用都没有。
3.还有查看 docker version 指连接不上,但是这个好像本来就是docker启动后才能连接,没用
[root@node25 /usr/lib/systemd/system]# docker version
Client:
Version: 18.09.7
API version: 1.39
Go version: go1.10.8
Git commit: 2d0083d
Built: Thu Jun 27 17:56:06 2019
OS/Arch: linux/amd64
Experimental: false
error during connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/version: read unix @->/var/run/docker.sock: read: connection reset by peer
这个时候我就奇了怪了,非法字符?selinux限制?为啥我日志里一个都没提示,提示的这么笼统我啥也看不出他们怎么知道的?
这个时候看到了这篇文章
而现在我安装的 注意看service ,里面基本啥都没有
所以不同版本的配置文件不一样,/etc/sysconfig/docker这个玩意现在版本根本就没了。
问题还是要解决,但是错误日志又不多,怎么搞?此时百度了下软件日志都在哪
tail -200f /var/log/messages
Sep 17 17:18:09 node25 dockerd: Error starting daemon: Error initializing network controller: list bridge addresses failed: no available network
好像和网络有关 总算比之前清晰了。直接百度
ip link add name docker0 type bridge
ip addr add dev docker0 172.17.0.1/16
https://github.com/docker/for-linux/issues/123
ok 解决。但是具体原理还不知道。。
其实我都点理解,随便说说,仅供参考。
docker 是通过桥接模式连接外网和容器内部网络,如果你查看成功启动的docker的服务器,会发现多了一个docker0的网卡,我猜测就是安装的时候网卡这里可能有点问题
拜托各位别抄袭了,csdn上一大堆垃圾误导别人,不说原理,不说过程,直接就说怎么解决。每个人的问题可能一样但是原因不一样的。