美文网首页Docker
10、Docker的网络功能-容器与外部/容器与容器之间访问

10、Docker的网络功能-容器与外部/容器与容器之间访问

作者: 那钱有着落吗 | 来源:发表于2021-12-03 16:59 被阅读0次

docker中的网络原理还是有必要了解的,因为很多时候可能都需要处理容器之间或者容器与主机的网络通信问题

1.启动与配置参数

1.1 网络启动过程

网络启动过程Docker服务启动时会首先在主机上自动创建一个docker0虚拟网桥,实际上是一个Linux网桥。网桥可以理解为一个软件交换机,负责挂载其上的接口之间进行包转发。

同时,Docker随机分配一个本地未占用的私有网段(在RFC1918中定义)中的一个地址给docker0接口。比如典型的172.17.0.0/16网段,掩码为255.255.0.0。此后启动的容器内的网口也会自动分配一个该网段的地址。

当创建一个Docker容器的时候,同时会创建了一对veth pair互联接口。当向任一个接口发送包时,另外一个接口自动收到相同的包。互联接口的一端位于容器内,即eth0;另一端在本地并被挂载到docker0网桥,名称以veth开头(例如vethAQI2QT)。通过这种方式,主机可以与容器通信,容器之间也可以相互通信。如此一来,Docker就创建了在主机和所有容器之间一个虚拟共享网络


1.2网络相关参数



2.配置容器DNS和主机名

Docker服务启动后会默认启用一个内嵌的DNS服务,来自动解析同一个网络中的容器主机名和地址,如果无法解析,则通过容器内的DNS相关配置进行解析。用户可以通过命令选项自定义容器的主机名和DNS配置,下面分别介绍。

2.1 相关配置文件

容器中主机名和DNS配置信息可以通过三个系统配置文件来管理:/etc/resolv.conf、/etc/hostname和/etc/hosts。启动一个容器,在容器中使用mount命令可以看到这三个文件挂载信息:


2.2 容器内修改配置文件

容器运行时,可以在运行中的容器里直接编辑/etc/hosts、/etc/hostname和/etc/resolve. conf文件。但是这些修改是临时的,只在运行的容器中保留,容器终止或重启后并不会被保存下来,也不会被docker commit提交。

2.3 通过参数指定

3.容器访问控制

容器的访问控制主要通过Linux上的iptables防火墙软件来进行管理和实现。iptables是Linux系统流行的防火墙软件,在大部分发行版中都自带。

3.1容器访问外部网络

3.2容器之间访问

3.3容器访问控制

容器的访问控制主要通过Linux上的iptables防火墙软件来进行管理和实现。iptables是Linux系统流行的防火墙软件,在大部分发行版中都自带。

image.png

3.4容器之间的访问


4. 映射容器端口到宿主主机的实现

默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器。



相关文章

  • 10、Docker的网络功能-容器与外部/容器与容器之间访问

    docker中的网络原理还是有必要了解的,因为很多时候可能都需要处理容器之间或者容器与主机的网络通信问题 1.启动...

  • Docker 网络 (二)

    容器与外部网络的访问,这里涉及2个问题: 容器访问外部世界 外部世界访问容器 容器访问外部世界 在 NAT 表中,...

  • Docker笔记之网络管理

    Docker中的容器的网络默认与宿主机、与其他容器都是相互隔离的, 实现容器之间、容器运行的服务于外部网络之间等的...

  • Docker实战系列(4)-网络配置

    Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。 外部访问容器 容器中可以运行一些网络应用,要让...

  • Docker 网络

    Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。 外部访问容器 容器中可以运行一些网络应用,要让...

  • Docker-网络

    网络 容器间通信 容器间可通过IP,Docker DNS Server或joined容器三种方式通信。 容器与外部...

  • docker网络模式

    docker网络 使用网络 外部访问容器 -p/P端口映射参数 docker port查看当前端口映射 容器互联 ...

  • Docker笔记五:容器网络访问

    外部访问容器 通过NAT机制实现容器与外部的互联通过docker run -P 或 -p 参数来指定端口映射。 ...

  • 容器网络

    容器网络 如何创建自定义网络、容器之间如何通信、容器如何与外界交互docker network ls 查看dock...

  • 手把手教你实现 docker 跨主机间网络通讯

    目标 实现 2 台 docker 主机中的容器与容器之间、容器与主机之间的网络互通 资源准备 准备两台已经安装好 ...

网友评论

    本文标题:10、Docker的网络功能-容器与外部/容器与容器之间访问

    本文链接:https://www.haomeiwen.com/subject/uorbtrtx.html