Нужно ли создавать многоузловую сеть в докере? - PullRequest
0 голосов
/ 09 ноября 2019

Для приведенного ниже файла docker-compose здания динамически:

version: '2'

volumes:
  jenkins_home:
    external: true

services:
  jenkins:
    build:
      context: .
      args:
        DOCKER_GID: ${DOCKER_GID}
        DOCKER_ENGINE: ${DOCKER_ENGINE}
        DOCKER_COMPOSE: ${DOCKER_COMPOSE}
    volumes:
      - jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "8080:8080"

создает сеть типа моста (project1_default):

$ docker network ls
NETWORK ID          NAME                     DRIVER              SCOPE
....
f1b7ca7c6dfe        project1_default         bridge              local
....

после запуска нижекоманда:

$ docker-compose -p project1 up -d

После запуска и подключения к ведущему jenkins, мы настраиваем и создаем подчиненные jenkins на отдельном хосте EC2, используя плагин EC2 ведущих jenkins.

Но над сетью (project1_default) находится сеть с одним хостом, которая позволяет передавать пакеты внутри одного хоста. Ниже моя визуализация сети мостового типа (project1_default) ...

enter image description here

Итак, нам нужно запустить и настроить мастер Дженкинс для запускаslave jenkins на отдельных хостах EC2 с помощью плагина EC2,


  1. Нужно ли создавать сеть с несколькими хостами (swarm)? вместо типа моста (project1_default) ...

  2. Если да, как создать сеть с несколькими узлами?

1 Ответ

2 голосов
/ 09 ноября 2019

все три должны работать в контейнере? Плюс контейнеры работают на отдельных экземплярах ec2, правильно?

Вы можете открыть необходимые порты для IP-адреса основного хоста. Это откроет контейнеры Jenkins для вашей сети, и вы сможете взаимодействовать с ним, как если бы он был установлен непосредственно на экземпляре ec2 (а не в контейнере).

Вот пример

docker run -p 80:8080 ubuntu bash

это откроет порт 8080 в контейнере на порт 80 на вашем хост-компьютере. Начните с вашего главного, а затем с подчиненных и добавьте своих подчиненных так же, как при настройке не контейнера, используя IP-адрес экземпляра ec2 и порт, который вы указали для подчиненных.

Более подробную информацию о публикации портов можно найти здесь

...