Docker学习入门(5)
1、Docker容器的网络基础
(1)使用 ifconfig 查看系统的网络配置,dokcer的守护进程就是通过docker0给docker容器提供网络服务的,这里的 docker0 就是linux的虚拟网桥
网桥属于OSI七层模型的数据链路层
Linux虚拟网桥的特点:可以设置IP地址,相当于拥有一个隐藏的虚拟网卡
docker0的地址默认划分: IP:172.17.0.1; 子网掩码:255.255.0.0; MAC: 02:42:78:DC:00:00到02:42:78:DC:ff:ff
总共提供了65534个地址
(2)docker0
(3)如何修改 docker0 地址?
sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0
(4)自定义虚拟网桥
添加虚拟网桥 sudo brctl addbr br0
sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0
更改dokcer守护进程的启动配置: /etc/default/docker 中添加DOCKER_OPS值 -b=br0
2、Docker容器的互联
(1)环境准备: 制作一个用于测试的Docker镜像Dockerfile:
FROM ubuntu:14.04
RUN apt-get install -y ping
RUN apt-get update
RUN apt-get install -y nginx
RUN apt-get install -y curl
EXPOSE 80
CMD /bin/bash
(2)允许所有容器互联 --icc=true(默认允许容器间的连接)
--link选项:docker run --link=[CONTAINER_NAME]:[ALIAS] [IMAGE] [COMMOND] 映射容器的IP地址
演示:运行两个容器 docker run -it --name cct01 yw_sir/cct
docker run -it --name cct02 yw_sir/cct
|
|
查看使用--link后容器内的环境变量和hosts文件的变化
(3)拒绝容器间互联
修改Docker守护进程的启动选项 --icc=false
(4)允许特定容器间的连接
修改Docker守护进程的启动选项
--icc=false (阻断所有容器的访问,仅仅允许使用--link设置的容器)
--iptables=true (控制网络访问)
--link
3、Docker容器与外部网络的连接
(1)ip_forwark 默认--ip_forwark=true,允许流量转发;查看
(2)iptables
是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都包含iptables的功能
表(table):在上图中nat、mangle、raw等命名的表
链(chain):数据处理中不同环节或不同阶段
规则(rule):每个链下的操作
ACCEPT 、REJECT、DROP
如:filter表中包含的链:INPUT、FORWARD、OUTPUT
(3)允许端口映射访问
(4)限制IP访问容器