我有一个在主机上运行的docker容器,它通过标准的“docker run ...”命令启动。它运行的网络是默认名称“directory_default”,其中“directory”是当前目录的名称。
我还有一个docker compose文件(在同一主机上),它包含另一个需要访问已经运行的容器的容器定义。但是,在运行撰写文件时,我一直看到错误,指出无法访问网络。
阅读Cannot link to a running container started by docker-compose似乎指向类似的问题,但反过来(连接到通过compose启动的运行容器)。
我尝试在compose中设置env变量并使用--project-name标志设置网络但没有运气。我还尝试使用撰写文件的“网络”部分来定义运行时看到的网络名称:
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"
我还尝试删除上面的“网络”部分并使用以下命令调用docker-compose:
--project-name test_default
如撰写文档中所述。我没有使用swarm模式。
答案 0 :(得分:0)
尝试此docker-compose :(您需要指定网络已存在)
version: "3"
services:
test_container1:
networks:
- test_default
image: mytest
container_name: mytest
restart: on-failure
ports:
- "8003:8003"
networks:
test_default:
external: true