我正在使用docker compose来构建一个具有服务X和Y的拓扑, 是否可以从服务Y(容器)中扩展服务X?
答案 0 :(得分:1)
通常,当我想从容器中访问本地docker时,我只是将docker socket和docker binary挂载为卷。
例如(我从docker for mac运行它):
docker run -it -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker alpine sh
从那里你可以运行任何docker命令,包括扩展你的服务。
您可以将这两个卷添加到docker-compose.yml
EDIT1
在撰写语法时,您可以这样做
services:
serviceX:
image: yournamespace/yourimage:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
serviceY:
...
ServiceX将有权访问docker。然后由您在此服务中运行的应用程序来调用API。