docker - 如何从连接到外部网络的另一个组合访问容器?
问题描述
这是我希望从外部容器连接到的带有容器配置的撰写文件(在另一个撰写文件中定义):
version: '3.5'
services:
service-to-connect-to:
build: .
networks:
- my-external-network
networks:
my-external-network:
external: true
和另一个包含我希望连接到的容器的配置的撰写文件service-to-connect-to
:
version: "3.5"
services:
service-to-connect-from:
build: .
我尝试service-to-connect-to
通过以下域连接:
service-to-connect-to
service-to-connect-to.my-external-network
my_external_network.service-to-connect-to
但他们都没有工作。
我哪里错了?
谢谢
解决方案
首先,您必须将这两种服务添加到同一网络才能连接它们。因此,后者的撰写文件应该类似于
version: "3.5"
services:
service-to-connect-from:
build .
networks:
- my-external-network
networks:
my-external-network:
external: true
现在这两个服务都在同一个网络上,它们可以使用容器的名称找到彼此。容器名称默认与服务名称相同,但 docker compose 也为其添加前缀项目名称,默认情况下是 compose 文件所在的目录名称。如果您首先启动服务docker-compose up -d
,然后通过运行查看容器如何命名,您可以看到这一点docker ps
。例如,容器名称可以是project1_service-to-connect-to
。使用此名称,您可以从其他服务进行连接。
如果您愿意,您还可以使用container_name
服务选项显式设置容器的名称。使用时,compose 不再为容器名称添加前缀。
推荐阅读
- swift - transferUserInfo(_:) 不支持发送类
- javascript - 我在反应中重新加载页面后丢失了道具
- flutter - 如何在 ListView 的开头有一个“半透明的命中行为”填充?
- python - 索引除最后两个值之外的所有值
- html - 如何使用 React 更改悬停效果的“react-ionicons”颜色
- visual-studio - 通过扩展读取/写入任意 Visual Studio 选项?
- php - 根据 wp_usermeta 表新建 wp 数据表
- angular - 带有 i18n 的 Angular Universal SSR 未从服务器端加载语言环境
- api - 添加带有标签的子树
- javascript - 将属性名称与其在数组中的值匹配;