我在端口1234上的docker容器中运行了一个服务。现在,我想从相同的docker容器中运行此服务的测试,使用
`docker exec`但是我不能这样做,因为我的测试无法连接到它。作为服务地址,我使用docker $HOSTNAME变量。
docker exec SERVICE_NAME /bin/sh -c "nc -vz $HOSTNAME 1234"返回
连接被拒绝
docker exec SERVICE_NAME /bin/sh -c "netstat -tulpn"返回空行
我还尝试了$HOSTNAME的0.0.0.0 insead
我已经考虑过从其他容器运行测试,但这对我来说不是很方便,原因有两个: 1)我使用gitlab ci和docker来做这件事。2)我的服务链接到许多其他docker服务,如mongodb、rabbit等。
谢谢
发布于 2016-02-25 00:08:13
假设您的问题是“是否可以执行从容器到主机的Docker调用?”
是的,这当然是可能的!与Docker守护进程的通信是通过套接字进行的。默认情况下,此套接字是unix:///var/run/docker.sock。您的管理器-容器只需要访问(和权限)这个套接字。
并不是说Docker守护进程(我指的是ou -H, --host)的选项允许通过TCP (甚至是fd)进行通信。
然后,您只需要一个Docker客户端(任何Docker API实现)即可进行通信。
https://stackoverflow.com/questions/35606093
复制相似问题