![](/img/trans.png)
[英]No internet connectivity inside docker container running inside kubernetes with weave as networking
[英]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.