您的位置:首页 > 运维架构 > Docker

【Docker】学习笔记_网络连接

2019-07-20 22:35 176 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/huahuohui/article/details/96635625

1.docker0(容器与HOST之间的连接):

    docker0:Linux的虚拟网桥(连接Docker的Host主机中的守护进程以及容器)

        网桥:(数据链路层通过mac地址对网络进行划分并传递数据)

        特性:可以设置IP地址,相当一个隐藏的虚拟网卡

        默认设定:

            IP:172.17.42.1

            子网掩码:255.255.0.0

            MAC:02:42:ac:11:00:00 ~ 02:42:ac:11:ff:ff

            总共提供了65534个地址

    网桥管理工具:bridge-utils的安装:apt-get install -y bridge-utils

        查看网络设备:sudo btctl show

    修改docker0的地址:sudo ifconfig docker0 [希望分配的IP地址] netmask [子网掩码]

    使用自定义虚拟网桥:

        sudo brctl addbr [虚拟网桥名称]

        sudo ifconfig [虚拟网桥名称] [希望分配的IP地址] netmask [子网掩码]

        绑定到Docker

            修改/etc/default/docker

            添加DOCKER_OPTS = "-b = br0"

 

2.容器与容器之间的互联:

    允许所有的容器互联(默认):

        默认情况下同一宿主机内的容器都是可以互相连接的

        --icc:默认为true

        如果在Docker上提供了服务,假如这些服务是通过IP地址进行连接的话,这样就是不可靠的,因为在Docker重启前后,容器的IP地址都是会变化的。

        为了避免这种情况可以使用以下指令进行创建容器(不会受到IP地址变化带来的影响):

            docker run --link = [CONTAINER_NAME]:[ALIAS别名] [IMAGE] [COMMOND]

            --link:指定链接的容器

            (该指令会在容器内创建对应的环境变量以及/etc/hosts文件中的配置,这些环境变量以及文件配置都会在容器重新启动的时候相对应的发生变化)

    拒绝容器之间的互联:将icc变为false(/etc/default/docker中的DOCKER_OPTS)

    允许特定容器间的互联:

        --icc = false

        --iptables = true

        容器启动时用--link来进行互联配置

 

3.容器与外部网络之间的连接

    ipforward:Linux系统中决定系统是否会转发流量的变量(default = true):

        查看ipforward的值:sudo sysctl net.ipv4.conf.all.forwarding

    iptables:Linux的一种防火墙设置:

        表:被抽象化的操作:filter(默认表)

        链:数据处理的不同阶段:input/forward/output

        规则:在每个阶段的操作:ACCEPT / DROP

        通过iptables来添加规则(阻止特定IP对特定容器的访问):

            sudo iptables -I DOCKER -s [源地址] -d [目的地址] -p TCP --dport 80 -j DROP

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: