内置 brldge (nat)
缺点:需要配套服务注册/发现,否则宿主上端口分配困难,容易冲突。
由于每个容器暴露的端口都不一致,造成前端路由层nginx配置(peoxy_pass)里无法使用dns的方式。
端口映射要在容器启动时就指定好,后期无法变更。
nat不支持websocket。
自建桥接网络
优点:每个容器都有独立ip,对外提供服务,如nginx+php,都可以使用默认的80端口
由于容器暴露端口都可以使用80端口,因此前端路由层nginx配置(proxy_pass)里可以使用dns的方式。无需为了后期端口映射添加而烦恼
桥接支持websocket
---------以下操作是基于Centos6.5版本系统,Centos7以上没做实验
首先
关闭docker服务 service docker stop
删除docker0的网卡 ifconfig docker0 down
brctl delbr docker0
进入网卡配置cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0
vi ifcfg-br0
然后重启一下服务
/etc/init.d/network restart
然后ping一下百度 试试成功与否
然后 vi /etc/sysconfig/docker //修改docker为桥接模式
然后 /etc/init.d/docker restart 注意操作两次
然后启动一个容器
docker run -i -d -t centos /bin/bash
然后 ifconfig查看 如果出现下图表示成功
然后 docker ps查看容器id
然后 docker attach b66317f0d73b进入容器
然后查看ip,如果和主机ip相同网段表示成功!