2017-07-19 93 views
1

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

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

阅读Cannot link to a running container started by docker-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" 

这里是正在使用的输出/文件(目录中的“测试”运行):

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”目录中所述。撰写文件如下:如在撰写文档描述

--project-name test_default 

version: "3" 
services: 

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

我还试图除去“网络”部分上方和调用与搬运工-组成。我没有使用群模式。

+0

你请可以添加撰写文件,网络细节(驱动器)。你使用群模式? – Sreeni

+0

向OP添加了详细信息 – bzo

回答

0

试试这个泊坞窗 - 撰写:(你需要指定网络已经存在)

version: "3" 
services: 

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

networks: 
    test_default: 
    external: true 
相关问题