docker-撰写在docker-撰写:分享网络
docker-compose in docker-compose: Share network
我知道通过将此卷 /var/run/docker.sock:/var/run/docker.sock
添加到 docker-compose 文件来共享 docker 套接字,如 Using Docker-in-Docker for your CI or testing environment?
所建议
我创建了这个简单的 example/experiment 设置,可以在 docker-compose 容器中启动 docker-compose,而无需共享所有内容。
docker-compose.yml
services:
manager:
build:
context: ./manager
privileged: true
ngnix:
image: nginx:latest
manager/Dockerfile
FROM nginx:latest
RUN apt-get -y update \
&& apt-get install -y iputils-ping docker-compose
RUN mkdir /app
WORKDIR /app
COPY . ./
ENTRYPOINT ["/app/entrypoint.sh"]
CMD ["ping", "www.google.com"]
manager/entrypoint.sh
#!/bin/sh
set -e
service docker start
exec "$@"
manager/docker-compose.yml
services:
foobar:
image: ruby:latest
现在可能的命令是:docker-compose up -d; docker-compose exec manager docker-compose run foobar /bin/bash
目前,我还没有设法在主机和管理器上的主机之间共享 docker-compose 网络。当然,这就是 docker 每个设计的工作方式。因此,在执行上述命令后,从 foobar
容器执行 ping ngnix
将不起作用。
我的问题是:我怎样才能完成这项工作?
我尝试以不同的方式将 network: host
添加到 manager/docker-compose.yml 中,但这没有用,或者我太笨了,没能正确完成。
正如 David Maze 指出的那样,唯一的解决方案可能是共享套接字。更多阅读信息请点击此处:
我知道通过将此卷 /var/run/docker.sock:/var/run/docker.sock
添加到 docker-compose 文件来共享 docker 套接字,如 Using Docker-in-Docker for your CI or testing environment?
我创建了这个简单的 example/experiment 设置,可以在 docker-compose 容器中启动 docker-compose,而无需共享所有内容。
docker-compose.yml
services:
manager:
build:
context: ./manager
privileged: true
ngnix:
image: nginx:latest
manager/Dockerfile
FROM nginx:latest
RUN apt-get -y update \
&& apt-get install -y iputils-ping docker-compose
RUN mkdir /app
WORKDIR /app
COPY . ./
ENTRYPOINT ["/app/entrypoint.sh"]
CMD ["ping", "www.google.com"]
manager/entrypoint.sh
#!/bin/sh
set -e
service docker start
exec "$@"
manager/docker-compose.yml
services:
foobar:
image: ruby:latest
现在可能的命令是:docker-compose up -d; docker-compose exec manager docker-compose run foobar /bin/bash
目前,我还没有设法在主机和管理器上的主机之间共享 docker-compose 网络。当然,这就是 docker 每个设计的工作方式。因此,在执行上述命令后,从 foobar
容器执行 ping ngnix
将不起作用。
我的问题是:我怎样才能完成这项工作?
我尝试以不同的方式将 network: host
添加到 manager/docker-compose.yml 中,但这没有用,或者我太笨了,没能正确完成。
正如 David Maze 指出的那样,唯一的解决方案可能是共享套接字。更多阅读信息请点击此处: