docker-compose中的docker-compose:共享网络。

问题描述 投票:-2回答:1

我知道通过添加这个卷来共享docker socket /var/run/docker.sock:/var/run/docker.sock 的建议,将其添加到docker-compose文件中。在你的CI或测试环境中使用Docker-in-Docker?

我创建了这个简单的例子experiment设置,以使在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"]

managerdocker-compose.yml

#!/bin/sh

set -e
service docker start
exec "$@"

managerdocker-compose.yml.

services:
  foobar:
    image: ruby:latest

现在可能的命令是。docker-compose up -d; docker-compose exec manager docker-compose run foobar /bin/bash

目前,我还没办法在主机和管理器之间共享docker -compose网络。当然,这就是docker按照设计的工作方式。因此在执行上面的命令后,执行 ping ngnix 来自 foobar 容器将无法工作。

我的问题是。 我怎么才能让它工作?

我试着添加 network: host到managerdocker-compose.yml中,用了不同的方法,但是没有成功,或者说我太笨了,没有做到正确。

docker docker-compose docker-networking
1个回答
0
投票

正如David Maze所指出的,可能唯一的解决方案就是共享socket。更多阅读信息在这里。

© www.soinside.com 2019 - 2024. All rights reserved.