当前位置: 首页 > 知识库问答 >
问题:

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

宫俊远
2023-03-14

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

我还有一个docker compose文件(在同一台主机上),它包含另一个容器定义,需要访问已经运行的容器。然而,当运行撰写文件时,我总是看到一个错误,指出网络无法访问。

读取无法链接到由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

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

共有1个答案

堵龙野
2023-03-14

试试这个 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
 类似资料:
  • 我正在用docker容器设置本地开发环境。码头工人在作曲。yml如下所示: 它开始没有错误。docker列出了3个运行中的容器 但是,当我尝试从另一个容器链接到那些正在运行的容器时 我得到错误 我也尝试过 同样的错误。 那么如何链接到docker-compose启动的正在运行的容器呢?

  • 问题内容: 我正在使用Docker容器设置本地开发环境。docker-compose.yml如下所示 它开始没有错误。码头工人列出了3个正在运行的容器 但是,当我尝试从另一个容器链接到那些正在运行的容器时 我得到错误 我也尝试过 同样的错误。 那么如何链接到由docker-compose启动的运行容器? 问题答案: 好的,找到答案了。万一其他人遇到同样的问题,那就去做吧 此命令列出所有docker

  • 我有一个服务,我正在通过Rancher通过Docker-Compose提出。我遇到的问题是需要在容器部署后设置密码。

  • 问题内容: 我需要在Windows 2016 Server上使用Docker / Windows容器并为其准备Windows应用程序才能在其上运行。通过Powershell配置Windows并不像在Ubuntu上那样方便,尤其是如果您从未真正使用过Windows Server并且需要学习所有Powershell命令时,尤其如此;) 是否可以通过GUI访问Windows容器? 可以在Docker,U

  • 如果我有一个mysql数据库在某台主机上运行,并且该主机也在运行docker容器:我将如何从主机上运行的docker容器中访问mysql数据库?。 有没有一种方法可以将主机端口发布到容器(与docker run-p的功能相反)?

  • 问题内容: 目前,我在需要连接到camunda的docker容器内运行一个node.js应用程序,该容器在另一个容器中运行。 我使用以下命令启动容器 这两个应用程序现在都在运行,我可以通过在端口8000上导航到主机的IP来访问camunda,运行wget 还会返回camunda页面。使用和键入我的应用程序容器时,我无法访问camunda。相反,我得到以下错误: 当我使用将我的应用程序容器链接到ca