![](/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.