11、Docker的网络功能-配置容器网桥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11、Docker的网络功能-配置容器网桥相关的知识,希望对你有一定的参考价值。

参考技术A Docker服务默认会创建一个名称为docker0的Linux网桥(其上有一个docker0内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。用户使用Docker创建多个自定义网络时可能会出现多个容器网桥。

Docker默认指定了docker0接口的IP地址和子网掩码,让主机和容器之间可以通过网桥相互通信,它还给出了MTU(接口允许接收的最大传输单元),通常是1500 B,或宿主主机网络路由上支持的默认值。这些值都可以在服务启动的时候进行配置:

每次创建一个新容器的时候,Docker从可用的地址段中选择一个空闲的IP地址分配给容器的eth0端口,并且使用本地主机上docker0接口的IP作为容器的默认网关:

除了默认的docker0网桥,用户也可以指定其他网桥来连接各个容器。在启动Docker服务的时候,可使用-b BRIDGE或--bridge=BRIDGE来指定使用的网桥。如果服务已经运行,就需要先停止服务,并删除旧的网桥:

docker系列之网络配置

docker 网络配置

  docker 安装后, 会自动在系统做一个网桥配置 docker0 . 其容器都会分配到此网桥配置下的独立, 私有 IP 地址.

  如果你要自己配置桥接, 也可以把 docker0 删除掉. docker run 的时候使用参数 -b 指定你自己配置的网桥.

  docker 容器的网络, 是相对于实体机的私有网络. 在网桥配置下, 只要知道 IP 地址, 各容器, 及实体机本身都可以自由通信.

  但是在实体机的网卡网络下, docker 容器就不可见了. 要让容器被外界访问到, 最简单的一个方法就是直接做端口映射, 把容器的端口和实体机端口成对连通. docker run 的时候 使用 -p 参数就可以指定一对端口映射:

docker run -d -p 5000:22 -p 18888:8888 zys:common

  上面的命令, 在启动容器时, 指定的端口映射表示实体机 5000 端口映射到容器 22 端口, 同时 18888 端口映射到容器 8888 端口. 这样做之后, 就可以通过实体机的 5000 端口 ssh 登录到容器了:

ssh [email protected] -p5000
ssh [email protected] -p5000

  docker run 时还有其它参数可用到控制容器的网络配置:

    -p
端口映射
    -h
设置主机名, 这个主机名是仅容器自己可见的.
    --link=CONTAINER_NAME:ALIAS
把另一个容器的地址配置成一个 ALIAS 主机名.
    --dns
配置 DNS 服务器.

以上是关于11、Docker的网络功能-配置容器网桥的主要内容,如果未能解决你的问题,请参考以下文章

Docker网络配置

Docker网络与Iptables浅析

Docker 网络

pipework配置docker网桥网络

linux下配置好elasticsearch怎样连接eclipse

20.Docker技术入门与实战 --- 高级网络功能