簡體   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