记录下centos7安装docker以及安装过程中出现的问题(以下全部为root权限执行命令):

  • 更新源

yum update
  • 卸载旧版本

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
  • 安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2
  • 添加docker源

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 更新新添加的源

sudo yum makecache fast
  • 安装docker

yum -y install docker-ce
  • 启动docker

systemctl start docker


问题一:yum -y install docker-ce出现下面问题

Error: Package: docker-ce-17.03.2.ce-1.el7.centos.x86_64 (nfjd-docker)
           Requires: docker-ce-selinux >= 17.03.2.ce-1.el7.centos
           Available: docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch (nfjd-docker)
               docker-ce-selinux = 17.03.2.ce-1.el7.centos
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

解决方法:

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm

yum -y install docker-ce


问题二:启动docker出现以下问题

Jan 15 10:56:54 nfjd-dp-web-test01-93126.jpushoa.com dockerd[29983]: Error starting daemon: Error initializing network controller: list bridge addresses failed: no available network
Jan 15 10:56:54 nfjd-dp-web-test01-93126.jpushoa.com systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jan 15 10:56:54 nfjd-dp-web-test01-93126.jpushoa.com systemd[1]: Failed to start Docker Application Container Engine.
Jan 15 10:56:54 nfjd-dp-web-test01-93126.jpushoa.com systemd[1]: Unit docker.service entered failed state.
Jan 15 10:56:54 nfjd-dp-web-test01-93126.jpushoa.com systemd[1]: docker.service failed.

解决方法:

ifconfig查看发现没有docker0网卡

查看服务器路由:route -n 发现存在172.16.0.0网段,与docker中检查ip网段重复。所以只要删除即可:

route -n

route del -net 172.16.0.0/12

systemctl start docker