docker共享宿主机操作系统,安装docker时建议关闭防火墙方式服务冲突,有些生产环境会直接把防火墙给卸掉。

1安装docker:

#安装依赖:
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装docker
yum install docker-ce docker-ce-cli containerd.io --allowerasing
#启动并设置开机启动
systemctl start docker
systemctl enable docker
#验证安装是否成功

2开启路由转发(目的是让docker和其它的容器可以互相通信)

#开启路由转发
[root@web01 ~]#vim /etc/sysctl.conf
[root@web01 ~]#tail -1 /etc/sysctl.conf
net.ipv4.ip_forward=1
#让命令生效:
[root@web01 ~]#sysctl -p
net.ipv4.ip_forward = 1
#重启docker

3修改docker启动文件,将通讯规则设置成允许

docker版本大于1.12时会设置FORWARD的默认规则为DROP,这个bug会造成容器间的通讯障碍,解决的办法就是直接在启动文件的[Service]标签里添加一句话:

ExecStartPost=/sbin/iptables -P FORWARD ACCEPT

[root@web01 ~]#vim /usr/lib/systemd/system/docker.service
[Service]
....
ExecStartPost=/sbin/iptables -P FORWARD ACCEPT
ExecReload=/bin/kill -s HUP $MAINPID

4重新加载docker配置文件:

[root@web01 ~]#systemctl daemon-reload
[root@web01 ~]#systemctl restart docker

5验证:

[root@web01 /lib/systemd/system]#ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:01:91:8c:f0 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

6卸载防火墙:

[root@web01 /lib/systemd/system]#yum remove firewalld-*