2

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

我还有一个 docker compose 文件(在同一主机上),其中包含另一个需要访问已经运行的容器的容器定义。但是,在运行 compose 文件时,我一直看到一个错误,指出无法访问网络。

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

我尝试在 compose 中设置环境变量并使用 --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

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

4

1 回答 1

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
于 2017-07-19T08:27:40.730 回答