如何使用docker-compose将已经在运行的容器链接到我的应用程序

时间:2019-12-02 11:31:20

标签: docker docker-compose containers

我需要将2个名为 proxy1 proxy2 的容器链接到 myapp

proxy1 proxy2 使用docker命令运行,而 myapp 使用docker-compose.yml

我需要能够从容器 myapp

ping通 proxy1 proxy2

我试图像这样在docker-compose.yml中使用external_links

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个代理容器?

1 个答案:

答案 0 :(得分:1)

我建议您执行以下操作:

创建网络:

docker network create mynetwork

将独立容器连接到网络:

docker network connect mynetwork my_container

更新您的docker-compose:

services:
  myapp:
    build: .
    ports:
      - 3000:3000
networks:
  default:
    external:
      name: mynetwork

其他方法是检查独立contaoner网络正在使用什么:

docker inspect proxy1

并使用该网络作为撰写的外部网络。

或者您也可以在撰写中使用network_mode: "host"