如何实现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下的容器间端口不通的功能。祝好运!