繁体   English   中英

Docker将运行在容器内的衍生容器联网

[英]Docker networking a spawned container running inside a container

我在下面有一个docker-compose文件。 我正在尝试通过network-test服务访问的一个api,该服务基本上通过docker.sock调用docker.sock docker run curl-test curl-test image / service基本上通过以下方式将curl http://api:3000调用到api端点: curl http://api:3000 当我运行docker compose时, curl-test服务可以按预期工作,但是network-test服务失败, could not resolve host api 我的问题是如何从network-test将对容器的引用传递给生成的容器?

version: '3'
services:
    api:
        build:
            context: api
            dockerfile: Dockerfile
        ports: 
            - 3000:3000
    curl-test:
        image: curl-test
        build:
            context: curl-test
            dockerfile: Dockerfile
        depends_on: 
            - api
        links: 
            - api
        tty: true
    network-test:
        build:
            context: network-test
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
        depends_on: 
            - api
        links: 
            - api

组合的服务位于它们自己的专用网络上,您赋予这些服务的名称api,curl-test和network-test仅由该网络上的dns解析。 您已从该网络中生成了一个容器,但未附加到该容器。 由于新容器不是该网络的一部分,因此无法解析名称“ API”。 您可以将容器连接到网络以解决此问题,但前提是您组成的网络是“可连接的”,这是默认设置。

您可以在此处阅读更多信息: https : //docs.docker.com/compose/networking/

此外,没有必要运行curl-test服务-它可能会立即退出。 您是在运行时创建的,因此不应在此处列出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM