各类 Docker 网络

Bridge 网络

Bridge 网络是 Docker 的默认网络驱动, 适用于单主机上的容器通信.

在 app1 容器中想要访问另一个容器中的服务, 可以通过另一个容器的名字如 app2 来访问这个服务.

创建一个 Bridge 网络

docker network create --driver bridge my_bridge_network

运行容器并连接到自定义 Bridge 网络

docker run -d --name db --network my_bridge_network mysql

Host 网络

容器共享宿主机的网络栈, 容器内的应用可以直接使用宿主机的网络接口和端口.

仅适用于 Linux 系统, Windows 和 macOS 对 Host 网络的支持有所不同.

启动容器的时候直接指定 host 网络就行了, 这种方式类似于在宿主主机上直接安装软件.

docker run -d --name my_host_container --network host nginx

IPvlan 网络

可以给容器配置不同的 IP 地址.

容器拥有独立的 IP 地址, 但共享宿主机 MAC 地址(L3 模式)或拥有独立的 MAC(L2 模式).

在 L3 模式下, 容器与宿主机可以通信.

创建一个 IPvlan 网络(L3 模式)

docker network create -d ipvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 \
  -o ipvlan_mode=l3 \
  my_ipvlan_network

运行容器并连接到自定义 IPvlan 网络

docker run -d --name ipvlan_container --network my_ipvlan_network nginx

本文作者:杂役24

本文链接:https://www.cnblogs.com/zy24/p/18472534

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @ 2024-10-18 21:30  杂役24  阅读(5)  评论(0编辑  收藏  举报