docker - 我如何在两个 docker 容器上使用或映射相同的端口
问题描述
我在 docker_container_1 中运行一个应用程序,其中几个端口被映射到本地。
因此,我可以从本地机器上的 docker_container_1 访问该服务。
现在,我想将服务从 docker_container_1 访问到另一个 docker_container (docker_container_2),但是我无法创建 docker_container_2,因为我无法映射映射到 docker_container_1 的端口。
如何从 docker_1 访问服务绑定到端口(比如 5555)到另一个 docker_2。
解决方案
所以,最初我有两个泊坞窗图像:
REPOSITORY TAG IMAGE ID CREATED SIZE
bert_client_api latest 2fa40dd05152 17 hours ago 841MB
bert_services latest 1695c35fde34 18 hours ago 2.74GB
我为图像制作了一个容器bert-services
,映射了几个端口。
$ sudo docker run -it -v /home/jugs/Desktop/BERT-Pretrained/uncased_L-12_H-768_A-12/1/:/model/ -p 5000:5000 -p 127.0.0.1:5555:5555 -p 127.0.0.1:5556:5556 bert_services /bin/bash
所以我有正在运行的容器:
(myenv) jugs@jugs:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de9bb74a0e04 bert_client_api "/bin/bash" 9 minutes ago Up 9 minutes suspicious_lewin
[我从容器运行托管服务:de9bb74a0e04
]
现在,如果我想要来自主机的所有服务(包括容器服务),方法是--net=host
使用
$ sudo docker run -it -v /home/jugs/Desktop/geeksforgeeks/dockerBertClient/:/mydir/ --net=host bert_client_api /bin/bash
现在,你有两个可以轻松通信的容器。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de9bb74a0e04 bert_client_api "/bin/bash" 9 minutes ago Up 9 minutes suspicious_lewin
f9d5a35a75bb bert_services "/bin/bash" 18 minutes ago Up 18 minutes 80/tcp, 127.0.0.1:5555-5556->5555-5556/tcp quizzical_minsky
推荐阅读
- graphql - 无效的 GraphQL 架构
- firebase - 捆绑失败:SyntaxError:JSON 输入在本机反应中意外结束
- azure - 从 Azure WebJob 访问 Azure WebApp 对象
- python - 您如何使代码与多个开发人员保持一致?
- javascript - 将数组中的每个项目与数组的其余部分进行比较的最快方法?
- javascript - 如何使用 Google 表格 API 在 javascript 中创建包含两张表格的 Google 电子表格?
- html - 居中的 div 内容导致 div 向上离开屏幕?
- java - 有没有办法扫描一维数组的 SVD,这样你就可以拥有 O(n) 的复杂度?
- google-sheets - Google表格 - 基于其他表格索引匹配值的一张表格中的条件格式单元格
- reactjs - iOS 上的 React Navigation v3 BottomTabNavigator 黑屏