Подключитесь к сети docker-compose, используя docker run - PullRequest
0 голосов
/ 14 октября 2018

Допустим, у меня запущена оркестровка с docker-compose с docker-compose.yml, которая выглядит следующим образом:

version: '2.2'

services:

  service1:
    # ...
    networks:
      - compose_network

  service2:
    # ...
    networks:
      - compose_network

networks:
  compose_network:

Я хочу запустить и временно подключить один контейнер к compose_network_1.Я попытался использовать

$ docker run --net=compose_network <image for the job>

, но не смог подключиться.Я также знаю, что docker-compose называет сети как [projectname]_default, поэтому я также попробовал этот вариант, но с тем же результатом.

Есть ли способ, которым я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Я не уверен, существовал ли когда-либо вариант --net, но теперь он --network.

С docker run --help:

      --network string   Connect a container to a network (default "default")

Как отмечает @maxm, вы можете найтиимя сети с префиксом DIR каталога проекта compose, а затем просто запустите его, как вы пытались:

$ docker run --network=DIR_compose_network <image for the job>

Я хотел подключиться при запуске, так как мой контейнер временный (выполняющиеся тесты), чтобы я могне используйте вторую команду docker network вовремя, прежде чем она выйдет.

например, для моей композиции docker в папке "dev" без указания сетевого имени, поэтому использует docker-compose имя "default", поэтому яполучить имя dev_default.

docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
2c660d9ed0ba        bridge              bridge              local
b81db348e773        dev_default         bridge              local
ecb0eb6e93a5        host                host                local

docker run -it --network dev_default myimage

Это соединяет новый контейнер Docker с существующей сетью Docker-compose.

0 голосов
/ 14 октября 2018

Имя сети будет примерно таким же, как name-of-directory_compose_network.Найдите имя с помощью docker network ls

, с которым у меня все получилось:

docker-compose up # within directory ./demo
docker run -itd -p "8000:8000" --hostname=hello "crccheck/hello-world"
# outputs: 1e502f65070c9e2da7615c5175d5fc00c49ebdcb18962ea83a0b24ee0440da2b
docker network connect --alias hello demo_compose_network 1e502f65070c

Тогда я мог бы curl hello:8000 из моего докера составлять контейнеры.Должна быть точно такой же функциональности, как и ваши команды, только с добавленным псевдонимом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...