如何实现docker同一个network容器间端口不通

1. 流程图

flowchart TD
    A(创建一个docker network) --> B(启动容器1)
    B --> C(启动容器2)

2. 整体步骤

步骤 操作
1 创建一个docker network
2 启动容器1
3 启动容器2

3. 详细步骤及操作

步骤1:创建一个docker network

首先,我们需要创建一个自定义的docker network,将两个容器连接到这个network上。

docker network create my_network

步骤2:启动容器1

接下来,我们启动第一个容器,将其连接到刚创建的network上。

docker run -d --name container1 --network my_network -p 8080:80 nginx

这段命令的含义是:

  • -d 表示以后台模式运行容器
  • --name container1 给容器取名为container1
  • --network my_network 将容器连接到my_network这个自定义network上
  • -p 8080:80 将容器内部的80端口映射到宿主机的8080端口
  • nginx 表示运行的镜像是nginx

步骤3:启动容器2

最后,我们启动第二个容器,也连接到同一个network上。

docker run -d --name container2 --network my_network -p 9090:80 nginx

这段命令的含义与上一个类似,只是将容器名改为container2,并将容器内部的80端口映射到宿主机的9090端口。

通过以上操作,我们成功实现了在同一个docker network下的两个容器,但是它们之间的端口是不通的,因为它们处于不同的network namespace中。

关系图

erDiagram
    CONTAINER1 ||--|| MY_NETWORK : Belongs to
    CONTAINER2 ||--|| MY_NETWORK : Belongs to

通过以上操作,你可以成功实现docker同一个network下的容器间端口不通的功能。祝好运!