卸载原有的Docker及其相关数据:

clear_docker.sh
  1. #!/bin/sh
  2. # 停相关进程:
  3. DOCKER_STATUS=$(rpm -qa | grep docker)
  4. if [ "$DOCKER_STATUS" != "" ]; then
  5. docker stop `docker ps -aq`
  6. docker rm `docker ps -aq`
  7. docker rmi `docker images -q`
  8. systemctl stop docker
  9. yum remove docker-ce
  10. yum remove docker
  11. # 删除 docker 工作目录
  12. rm -rf /var/lib/docker
  13. # 删除 docker 的一些运行文件
  14. rm -rf /var/run/docker/
  15. # 删除 systemd unit 文件
  16. rm -rf /etc/systemd/system/docker.service*
  17. # 删除docker 创建的网桥
  18. ip link del docker0
  19. fi

安装Docker

install_docker.sh
#!/bin/sh

ROOT=$(cd `dirname $0`/../&&pwd)
BIN_DIR=/usr/local/bin

# 安装Docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo $ROOT/docker-ce.repo
yum makecache fast
yum install -y docker-ce-17.06.2.ce-1.el7.centos.x86_64

# 将自定义的docker.service覆盖原有的docker.service
cp $ROOT/systemd/docker.service /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl stop firewalld
systemctl disable firewalld
systemctl enable docker
systemctl start docker

#docker 从 1.13 版本开始,可能将 iptables FORWARD chain的默认策略设置为DROP,
#从而导致 ping 其它 Node 上的 Pod IP 失败,遇到这种情况时,需要手动设置策略为 ACCEPT
iptables -P FORWARD ACCEPT
echo "sleep 120 && /sbin/iptables -P FORWARD ACCEPT" >> /etc/rc.local
iptables -F && sudo iptables -X && sudo iptables -F -t nat && sudo iptables -X -t nat