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访问容器

猜你喜欢

转载自blog.csdn.net/yangwei234/article/details/80978524