docker - 如何使用 docker-compose 将已经运行的容器链接到我的应用程序
问题描述
我需要将 2 个名为proxy1和proxy2的容器链接到myapp。
proxy1和proxy2使用 docker 命令运行,myapp使用 docker-compose.yml
我需要能够从容器myapp ping proxy1和proxy2
我尝试external_links
在我的 docker-compose.yml 中使用:
services:
myapp:
build: .
ports:
- 3000:3000
external_links:
- proxy1
- proxy2
如果我做一个docker ps
我有这个:
CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES
2f0365826670 myapp "docker-entrypoint.s…" Up About an hour 0.0.0.0:3000->3000/tcp, 0.0.0.0:8001->8001/tcp myapp_myapp_1
bbd1f5340086 proxy "supervisord -n" Up 2 hours 127.0.0.1:5002->8080/tcp proxy2
6c3cd1eb6530 proxy "supervisord -n" Up 2 hours 127.0.0.1:5001->8080/tcp proxy1
如何从 myapp 访问这 2 个代理容器?
解决方案
我建议您执行以下操作:
创建网络:
docker network create mynetwork
将您的独立容器连接到网络:
docker network connect mynetwork my_container
更新你的 docker-compose:
services:
myapp:
build: .
ports:
- 3000:3000
networks:
default:
external:
name: mynetwork
另一种方法是检查独立容器网络正在使用什么:
docker inspect proxy1
并将该网络用作撰写中的外部网络。
或者您可以network_mode: "host"
在您的撰写中使用不推荐的
推荐阅读
- android-studio - 如何正确导入项目?
- python - 在 Python Google Cloud Functions 中使用 URL 路径变量
- javascript - 从类返回字符串 - JavaScript
- javascript - JS - 在字符串中创建空格,直到它获得一定的宽度
- javascript - SEQUELIZE 不会通过插入一行来自动增加 id?
- html - Chrome 和 Firefox 中的 xpath 没有黄色高亮显示
- c# - PunRPC 方法无法在所有客户端上实例化游戏对象
- java - Spring Cloud Stream 手动轮询器 Kafka
- java - 如何在Java中实现仅存储唯一值的堆栈
- python - 围绕一个点进行实验组合表