- Docker容器的网络基础
- ifconfig 查看系统网络设备
- docker0
- Linux的虚拟网桥 是数据链路层的设备
- 可以设置IP地址
- 相当于拥有一个隐藏的虚拟网卡
- docker0的地址划分:
- IP:172.17.42.1 子网掩码:255.255.0.0
- MAC :02:42:ac:11:00:00 到 02:42:ac:11:ff:ff
- 总共提供了6534个地址
- 安装网桥:sudo apt-get install bridge-utils
- sudo brctl show 查看网桥设备
- docker run -it --name test ubuntu /bin/bash 运行一个容器
- ifconfig 查看容器的网络配置
- sudo brctl show 再次查看网桥的状态,就多了一个接口
- Linux的虚拟网桥 是数据链路层的设备
- 使用自定义的虚拟网桥:
- 添加虚拟网桥:
- sudo brctl addbr br0
- sudo ifconfig br0 132.168.100.1 netmask 255.255.255.0
- 更改docker守护进程的启动配置项:
- /etc/default/docker 中添加DOCKER_OPS值 -b=br0
- 添加虚拟网桥:
=======================================================
- Docker容器的互联
- 允许所有容器互联 (默认)
- --icc=true
- --link
- docker run --link =[CONTAINER_NAME]:[ALIAS] [IMAGE]{COMMOND]
- 允许所有容器互联 (默认)
=================================================
-
- 拒绝容器间互联
- icc=false 修改默认配置文件 /etc/default/docker
- sudo service docker restar 重启docker
- 允许特定容器间互联
- --icc=false
- --iptables=true
- --link
- 拒绝容器间互联
=======================================================
- Docker容器与外部网络的连接的方式以及基于iptables的防火墙机制
- ip_forward
- --ip-forward=true 默认允许流量转发
- sysctl net.ipv4.conf.all.forwarding
- ps -ef | grep docker 查看docker是否运行
- sudo sysctl net.ipv4.conf.all.forwarding 查看 是否设置为1
- iptables
- IPtables是Linux内核集成的包过滤防火墙系统,几乎所有的Linux发行版本都会包含Iptables的功能
- 允许端口映射访问
- 利用iptables限制IP访问容器
- ip_forward