从通过撰写启动的容器访问正在运行的容器

我有一个docker容器,运行在通过标准的“docker run …”命令启动的主机上。 它所运行的networking是默认名称“directory_default”,其中“directory”是当前目录的名称。

我也有一个docker撰写文件(在同一台主机上),其中包含另一个需要访问已经运行的容器的容器定义。 但是,在运行组合文件时,我总是看到错误,指出networking无法访问。

阅读无法链接到由docker-compose启动的正在运行的容器似乎指向类似的问题,但反过来(连接到运行通过compose启动的容器)。

我已经尝试设置envvariables编写和使用 – 项目名称标志来设置networking,但没有运气。 我也尝试使用撰写文件的“networking”部分来定义我在运行时看到的networking名称:

docker network ls 

但运行时:

 docker-compose up -d 

然后给出错误:

 ERROR: Service "my_service" uses an undefined network "my_already_existing_network that you see from docker network ls" 

以下是正在使用的输出/文件(在“test”目录下运行):

 docker network ls NETWORK ID NAME DRIVER SCOPE fc4c3de62436 bridge bridge local db6b28f177d0 test_default bridge local 5db4787312e5 host host local 64dfb53be850 none null local 

第一个容器是通过“docker run …”启动的,如前面“test”目录所述。 撰写文件如下:

 version: "3" services: test_container1: networks: - test_default image: mytest container_name: mytest restart: on-failure ports: - "8003:8003" 

我也尝试删除上面的“networking”部分,并调用docker-compose:

 --project-name test_default 

如撰写文档中所述。 我没有使用群模式。

试试这个docker-compose :(你需要指定networking已经存在)

 version: "3" services: test_container1: networks: - test_default image: mytest container_name: mytest restart: on-failure ports: - "8003:8003" networks: test_default: external: true