繁体   English   中英

docker-compose in docker-compose:分享网络

[英]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 所建议的那样?

我创建了这个简单的示例/实验设置,以便可以在 docker-compose 容器中启动 docker-compose,而无需共享所有内容。

docker-compose.yml

services:
  manager:
    build:
      context: ./manager
    privileged: true

  ngnix:
    image: nginx:latest

经理/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"]

经理/入口点.sh

#!/bin/sh

set -e
service docker start
exec "$@"

经理/码头工人-compose.yml

services:
  foobar:
    image: ruby:latest

现在可能的命令是: docker-compose up -d; docker-compose exec manager docker-compose run foobar /bin/bash 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 指出的那样,唯一的解决方案可能是共享套接字。 更多阅读信息:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM