7、容器的网络连接

1、linux虚拟网桥的特点
    可以设置IP地址
    相当于拥有一个隐藏的虚拟网卡

2、Docker守护进程创建的网桥
    docker守护进程创建的网桥的名字是docker0
    ip 172.18.0.1  子网掩码 255.255.0.0 (不同的机器不同)
    MAC 02:42:ac:11:00:00 到 02:42:ac:11:ff:ff
    总共有65534个地址

3、docker守护进程与docker容器的连接
    docker容器的网络设备会与运行docker守护进程的主机上打开一个接口与容器相连,实现docker0网桥与容器的网络通信

4、ubuntun镜像中没有ifconfig,使用如下命令安装
    apt-get update
    apt install net-tools        安装ifconfig命令
    apt install iputils-ping    安装ping命令

5、ubuntu系统中安装网桥的管理工具(cenos 用yum安装)
    apt-get update
    apt-get install bridge-utils

6、使用网桥管理工具显示系统网桥
    btdtl show
    
    显示如下
    bridge name     bridge id               STP enabled     interfaces
    docker0         8000.024221279713       no              veth111b9df
                                                                                    veth19a27c5
                                                                                    veth729cdf8
                                                                                    veth7796a25
                                                                                    veth7e0623f
                                                                                    vethbdfe96c
    interfaces 为接口


7、修改docker0的地址
    sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0


8、创建自定义的虚拟网桥
    sudo ifconfig  br0 192.168.100.1 netmask 255.255.255.0 (创建一个虚拟网桥br0)
    在docker配置文件中DOCKER_OPTS 中加上
        -p br0
    重启docker服务

9、docker容器间的互联

    1、允许所有的容器的互联
        docker在默认情况下会让同一宿主机上的所有的容器互联
        docker守护进程启动时通过设置参数-icc来设置是否允许容器间的互联
        -icc默认值为true,即允许容器间的互联,也可以指定-icc的值为false,不允许容器间的互联

    2、创建容器时指定连接容器的代号(别名)
        docker run --link=[CONTAINER_NAME]:[ALIAS] [IMAGES] [COMMAND]
        docker 守护进程重启会改变地址容器的ip地址,但其他容器可以指定某个容器的别名(代号),以这个代号去连接,避免ip改变无法连接的情况
        docker容器通过ALIAS去访问别的容器,是通过修改docker容器的linux镜像来实现的,如在
        /etc/hosts将ALIAS指向要访问的端口

    3、拒绝所有容器间的互联
        进docker守护进程的启动参数--icc置为false,重启docker后容器间的连接就会阻断
        vim /etc/default/docker
        在DOCKER_OPTS 加入 --icc=false
        :wq
        重启docker
        service docker restart
    
    4、允许特定容器间的连接
        当守护进程参数-icc=false通过设置容器的守护进程的启动参数--iptables=true,默认为true,所以不要设置
        注意当--icc=false 和--iptables=false启动时报错,暂时无解
        此时容器时指定--link指定的容器间依然不收--icc=false的影响

10、容器与外部网络连接
    1、ip_forward
        ip_forward是linux 内核中的变量,标志是否允许流量转发,默认是不允许
        使用sysctl net.ipv4.conf.all.forwarding 命令查看ip_forward的值,置为0是不允许流量转发
        为1是允许流量转发,通过echo 1 > /proc/sys/net/ipv4/ip_forward设置允许流量转发,echo 0 > /proc/sys/net/ipv4/ip_forward设置不允许流量转发
        docker 守护进程通配置参数-ip-forward=true(默认为true)设置ip_forward的值为1来允许流量转发
        有关ip_forward的相关介绍请见
        https://www.cnblogs.com/sfnz/p/6555723.html
    2、iptables
        Iptables是与linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能
        iptables的工作流程


        表(table)
        链(chain)
        规则(rule)
            ACCEPT、REJECT、DROP

        filetr表中包含的链
            INPUT
            FORWARD
            OUTPUT

        查看filter
            iptables -L -n

        禁止某个ip访问某个容器
            sudo iptables -I DOCKER -s 10.211.55.3 -d 172.17.0.7 -p TCP --dport 80 -j DROP
            禁止10.211.55.3访问容器地址为172.17.0.7的容器的80端口

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值