Статьи

Примеры связывания переменных среды Docker — Java, Node.Js, PHP, Python и Ruby On Rails

Однако платформа предоставляет базовые ( необязательные ) улучшения для Docker Compose, поддерживающие расширенные подключаемые модули с этапами жизненного цикла для обработки сценариев использования для обнаружения служб. Он также поддерживает перекрестные привязки переменных среды изображения, автоматический извлечение и вставку IP-адреса контейнера и дополнительные параметры, такие как mem_min, publish_all, cluster_size, host и registry_id. Инфраструктура обнаружения служб заботится о переконфигурировании балансировщиков нагрузки и других компонентов приложения, когда кластер масштабируется или уменьшается или когда контейнеры останавливаются / запускаются.

  • Получите подробную документацию по поддержке обнаружения сервисов DCHQ Docker Compose и управлению конфигурацией: http://dchq.co/docker-compose.html
  • Получите подробную документацию по обнаружению службы DCHQ на этой странице: http://dchq.co/docker-service-discovery.html

Вместо того чтобы перечислить все поддерживаемые параметры, на этой странице рассматриваются примеры Docker Compose — от базовых вариантов использования до более сложных.

Создание шаблонов Docker Compose

Docker Compose — это шаблон YAML для определения многоуровневых или распределенных приложений с несколькими образами, которые могут работать на любом хосте Linux с поддержкой Docker, работающем где угодно.

После входа в DCHQ (либо размещенную версию DCHQ.io, либо локальную версию) пользователь может перейти к « Управление» > « Приложение / Машина» и нажать кнопку « , чтобы создать новый шаблон Docker Compose .

8792501_orig

Обязательные поля :

  • Имя — это название шаблона приложения.
  • Версия — это определенный пользователем номер версии. Чтобы использовать надлежащий контроль версий в DCHQ, пользователь должен зарегистрировать свою учетную запись GitHub или GitHub Enterprise и выбрать параметры резервного копирования шаблона приложения с помощью GitHub Gist . Вот подробные шаги .
  • Видимость — владелец шаблона приложения может решить, является ли этот шаблон редактируемым из библиотеки самообслуживания, доступен только для чтения или полностью скрыт .
    • Для « скрытых » шаблонов пользователи смогут запрашивать приложение, но не смогут просматривать шаблон YAML или вносить какие-либо изменения.
    • Для шаблонов «Только для чтения» пользователи смогут запрашивать приложение, но не смогут изменять какие-либо параметры — например, изменять имя тега изображения, увеличивать размер кластера, открывать различные порты и т. Д.
  • Зарегистрированные пользователи — это пользователи, которые смогут просматривать это приложение в библиотеке самообслуживания и смогут развернуть его в одном из доступных им кластеров. Зарегистрированные пользователи не имеют права управлять или удалять этот шаблон приложения. По умолчанию шаблон приложения доступен всем пользователям. Однако владелец приложения может выбирать конкретных пользователей или группы.

Необязательные поля :

  • Короткое вступление — оно появится, когда пользователь нажмет « Настроить» на странице библиотеки . Это также отображается на странице организации. Например, вот официальная страница организации для DCHQ: https://www.dchq.io/landing/products.html#/library?org=DCHQ.
  • Описание — появляется, когда пользователь нажимает на Настроить на странице библиотеки . Это также отображается на странице организации. Например, вот официальная страница организации для DCHQ: https://www.dchq.io/landing/products.html#/library?org=DCHQ.
  • Функции — это функции, которые поддерживает шаблон приложения. Автор шаблона приложения может выбирать из ряда функций, таких как резервное копирование, высокая доступность, горизонтальное масштабирование, автоматическое обнаружение служб и т. Д.
  • Внешняя ссылка — позволяет владельцу шаблона приложения добавить ссылку на официальную документацию или блог.

5791217_orig

Использование GitHub Gist для контроля версий и резервного копирования шаблонов приложений

Чтобы правильно управлять различными версиями шаблона приложения, пользователь может зарегистрировать учетную запись GitHub или GitHub Enterprise и выполнить резервное копирование всех шаблонов в GitHub Gist.

Для этого пользователь может перейти к « Управление»> «Облачные поставщики», а затем нажать кнопку « , чтобы выбрать GitHub.com / GitHub Enterprise .

2758618_orig

Обязательные поля :

  • Имя — это имя учетной записи GitHub.
  • Тип — это тип учетной записи GitHub. Доступные опции: GitHub и GitHub Enterprise .
  • Токен доступа — это токен доступа для вашей учетной записи GitHub. Токен доступа можно сгенерировать, войдя в свою учетную запись GitHub и перейдя в « Настройки»> «Личные токены доступа» .
  • Политика шаблонов — это политика резервного копирования шаблонов Docker Compose и Machine Compose . Резервное копирование запускается каждый раз, когда вносятся изменения и шаблон сохраняется. Это означает, что пользовательский номер версии (v1.0) может иметь несколько резервных копий в Gist на основе изменений, внесенных в шаблон. Доступные варианты:
    • Не создавать резервные копии — это означает, что ваши шаблоны не будут сохранены.
    • Создавайте резервные копии всех данных с помощью общедоступного контроля доступа. Это означает, что все ваши шаблоны будут сохранены и будут общедоступны.
    • Резервное копирование всех с частным контролем доступа — это означает, что все ваши шаблоны будут сохранены и будут доступны только владельцу учетной записи GitHub
    • Тот же контроль доступа, что и у чертежа — это означает, что шаблон будет заархивирован и Gist будет общедоступным, если владелец шаблона приложения поделился им со всеми пользователями. Если владелец шаблона пометил его как личный, то Gist будет доступен только владельцу учетной записи GiHub.
  • Политика плагинов — это политика резервного копирования ваших плагинов BASH-скриптов. Они используются для управления конфигурацией контейнера и обнаружения услуг. Резервное копирование запускается каждый раз, когда вносятся изменения и плагин сохраняется. Это означает, что пользовательский номер версии (v1.0) может в конечном итоге иметь несколько резервных копий в Gist на основе изменений, внесенных в плагин. Доступные параметры такие же, как и в шаблонах.

660431_orig

Регистрация частных и публичных репозиториев Docker

Пользователь может зарегистрировать частные или публичные репозитории для Docker Registry , Docker Hub , Quay или Red Hat Container Registry . Пользователь может использовать недавно зарегистрированный репозиторий следующими способами:

  • Вставьте изображения в хранилище, используя функцию Image Build .
  • Извлекайте изображения из хранилища как часть шаблона Docker Compose . Параметр registry_id будет необходим для ссылки на зарегистрированный репозиторий.
  • Резервное копирование запущенных контейнеров путем создания новых образов и загрузки их в зарегистрированный репозиторий. Это можно сделать, щелкнув меню « Действия» для запущенного приложения и выбрав « Резервное копирование» .

Чтобы зарегистрировать Docker-репозиторий, пользователь может перейти к « Управление»> «Облачные провайдеры» и затем нажать кнопку « , чтобы выбрать Docker Registries .

5528996_orig

Обязательные поля :

  • Имя — это имя реестра Docker
  • URL — это URL-адрес реестра Docker (например, для Docker Hub это https://hub.docker.com/ )
  • Электронная почта — это адрес электронной почты, используемый для реестра Docker
  • Имя пользователя — это имя пользователя, используемое для реестра Docker
  • Пароль — это пароль для реестра Docker
  • Зарегистрированные пользователи — это пользователи, которые смогут извлекать или помещать изображения в этот реестр. Зарегистрированные пользователи не имеют права управлять или удалять этот реестр. По умолчанию реестр помечен как закрытый. Однако владелец реестра может выбирать определенных пользователей или группы.

4313168_orig

ВАЖНО — после сохранения реестра присваивается автоматически сгенерированный идентификатор. Этот идентификатор будет использоваться при создании шаблонов Docker Compose, которым необходимо извлекать изображения из этого реестра. Параметр registry_id в Docker Compose может просто ссылаться на этот реестр (например, registry_id: 2c91802251d157d70151f68e02b94410 ).

Автоматизация создания образов Docker и передача их в зарегистрированные реестры Docker

Если у вас есть Dockerfile в вашем хранилище кода для создания ваших последних изображений, то вы можете использовать DCHQ для автоматизации создания образа Docker, а также для отправки новых изображений в один из зарегистрированных реестров Docker.

Конечно, если вы используете Docker Hub, у вас есть возможность использовать функцию Automated Builds . Однако, если вы используете частный реестр , DCHQ может обеспечить необходимую автоматизацию построения образа.

После входа в DCHQ (либо размещенную версию DCHQ.io, либо локальную версию) пользователь может перейти к пункту « Автоматизация» > « Сборка изображения» и нажать кнопку « , чтобы создать новую сборку образа файла Dockerfile (Git / GitHub / BitBucket) .
Укажите необходимые значения следующим образом:

  • URL Git — (например, https://github.com/dchqinc/dchq-docker-php-example.git )
  • Git Branch — это поле является необязательным, но пользователь может указать ветку из проекта GitHub. Ветвь по умолчанию — главная.
  • Git Credentials — пользователь может безопасно хранить учетные данные в частном репозитории GitHub в DCHQ. Это можно сделать, перейдя в « Управление» > « Облачные провайдеры» и нажав « для выбора учетных данных.
  • Кластер — создание образов Docker организовано через агента DCHQ. В результате пользователю необходимо выбрать кластер, в котором агент будет использоваться для выполнения построения образов Docker. Если кластер еще не создан, обратитесь к этому разделу, чтобы зарегистрировать уже запущенные узлы или автоматизировать подготовку новой виртуальной инфраструктуры.
  • Push to Registry — пользователь может отправить только что созданный образ в общедоступный или частный репозиторий на Docker Hub или Quay. Чтобы зарегистрировать учетную запись Docker Hub или Quay, пользователь должен перейти к « Управление» > « Облачные поставщики» и нажать « +», чтобы выбрать Docker Registries.
  • Репозиторий — это имя репозитория, в которое будет помещено изображение. Например, наше изображение было помещено в dchq / php-example: latest
  • Тег — это имя тега, которое вы хотели бы дать для нового изображения. Поддерживаемые имена тегов в DCHQ включают в себя:
    • {{date}} — форматированная дата
    • {{timestamp}} — полная отметка времени
  • Выражение Cron — пользователь может планировать создание образов Docker, используя готовые выражения cron. Это облегчает ежедневные и ночные сборки для пользователей.
  • Кто может управлять — пользователь может пометить эту сборку как частную или поделиться ею с другими пользователями или группами.

После заполнения обязательных полей пользователь может нажать « Сохранить» .

7973160_orig

Затем пользователь может нажать кнопку « Play», чтобы создать образ Docker по запросу.

1895919_orig

Создание базового шаблона приложения Node.js Hello World

После входа в DCHQ (либо размещенную версию DCHQ.io, либо локальную версию) пользователь может перейти к « Управление» > « Приложение / Машина» и нажать кнопку « , чтобы создать новый шаблон Docker Compose . Вот шаблон Docker Compose для базового приложения Docker Node.js «Hello World».

1
2
3
4
5
node:
  image: dchq/nodejs:latest
  mem_min: 50m
  cpu_shares: 1
  publish_all: true

изображение: dchq / nodejs: последнее

  • Это образ Docker, который будет извлечен из реестра для запуска контейнера. По умолчанию все изображения извлекаются из Docker Hub.
  • Для извлечения из частного репозитория необходимо добавить параметр registry_id . Это должно ссылаться на идентификатор реестра Docker, который вы бы зарегистрировали.
  • Чтобы извлечь из официального репозитория (например, MySQL), вы можете просто ввести изображение: MySQL: последний
  • Имя тега относится к помеченным изображениям, доступным в хранилище. Например, вот теги, доступные для этого изображения Node.js.
  • Этот образ Node.js был создан с использованием этого проекта GitHub ( https://github.com/dchqinc/docker-nodejs ). Вы можете автоматизировать создание образов Docker с помощью DCHQ.

мем_мин: 50м

  • mem_min относится к минимальному объему памяти, который вы хотели бы выделить для контейнера. В этом случае контейнеру будет выделено не менее 50 МБ памяти, и он продолжит использовать ресурсы хоста в зависимости от нагрузки.

cpu_shares: 1

  • cpu_shares относится к количеству ЦП, выделенному для контейнера.

publish_all: правда

  • Если значение равно true, этот параметр будет случайным образом связывать все открытые порты в Dockerfile со случайным портом между 32000-59000 на хосте. В этом случае порт 8080 отображается в Dockerfile, поэтому случайный порт на хосте будет связан с портом 8080 в контейнере.

Использование привязок переменных среды для создания WordPress с шаблоном приложения MySQL

После входа в DCHQ (либо размещенную версию DCHQ.io, либо локальную версию) пользователь может перейти к « Управление» > « Приложение / Машина» и нажать кнопку « , чтобы создать новый шаблон Docker Compose .
Вот шаблон Docker Compose для Docker WordPress с MySQL.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
WordPress:
  image: wordpress:latest
  mem_min: 1g
  publish_all: true
  environment:
  - WORDPRESS_DB_PASSWORD={{MySQL|MYSQL_ROOT_PASSWORD}}
  - WORDPRESS_DB_HOST={{MySQL|container_private_ip}}:3306
  - WORDPRESS_DB_USER={{MySQL|MYSQL_USER}}
  - WORDPRESS_DB_NAME={{MySQL|MYSQL_DATABASE}}
MySQL:
  image: mysql:latest
  mem_min: 400m
  publish_all: false
  environment:
  - MYSQL_USER=root
  - MYSQL_DATABASE=wordpress
  - MYSQL_ROOT_PASSWORD={{alphanumeric | 12}}

Пользователь может создавать привязки переменных окружения между изображениями, делая ссылку на переменную окружения другого изображения. В этом случае мы сделали несколько привязок, в том числе WORDPRESS_DB_HOST = {{MySQL | container_private_ip}}: 3306, в которых внутренний IP-адрес контейнера базы данных динамически разрешается во время запроса и используется для того, чтобы WordPress мог установить соединение с база данных.

Вот список поддерживаемых значений переменных среды:

  • {{буквенно-цифровой | 8}} — создает случайную 8-символьную буквенно-цифровую строку. Это наиболее полезно для создания случайных паролей.
  • {{Имя изображения | ip}} — позволяет ввести IP-адрес хоста контейнера в качестве значения для переменной среды. Это наиболее полезно для разрешения уровня промежуточного программного обеспечения устанавливать соединение с базой данных.
  • {{Имя изображения | имя_контейнера}} или {{Имя изображения | container_ip}} — позволяет ввести имя контейнера в качестве значения для переменной среды. Это наиболее полезно для разрешения уровня промежуточного программного обеспечения устанавливать безопасное соединение с базой данных (без предоставления порта базы данных).
  • {{Имя изображения | container_private_ip}} — позволяет ввести внутренний IP-адрес контейнера в качестве значения для переменной среды. Это наиболее полезно для разрешения уровня промежуточного программного обеспечения устанавливать безопасное соединение с базой данных (без предоставления порта базы данных).
  • {{Имя изображения | port_Port Number}} — позволяет ввести номер порта контейнера в качестве значения для переменной среды. Это наиболее полезно для разрешения уровня промежуточного программного обеспечения устанавливать соединение с базой данных. В этом случае указанный номер порта должен быть внутренним номером порта, то есть не внешним портом, который выделен для контейнера. Например, {{PostgreSQL | port_5432}} будет преобразован в фактический внешний порт, который позволит промежуточному программному обеспечению установить соединение с базой данных.
  • {{Имя изображения | Имя переменной среды}} — позволяет ввести значение переменной окружения изображения в переменную окружения другого изображения. Варианты использования здесь бесконечны — так как большинство многоуровневых приложений будут иметь зависимости между изображениями.

Использование плагинов и параметра хоста для развертывания высокодоступного приложения Docker Java

После входа в DCHQ (либо размещенную версию DCHQ.io, либо локальную версию) пользователь может перейти к « Управление» > « Приложение / Машина» и нажать кнопку « , чтобы создать новый шаблон Docker Compose .

Вот шаблон Docker Compose для Java-приложения Docker с Docker Tomcat и MySQL:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
AppServer:
  image: tomcat:8.0.21-jre8
  mem_min: 600m
  publish_all: true
  host: host1
  cluster_size: 1
  environment:
    - database_driverClassName=com.mysql.jdbc.Driver
    - database_url=jdbc:mysql://{{MySQL|container_ip}}:3306/{{MySQL|MYSQL_DATABASE}}
    - database_username={{MySQL|MYSQL_USER}}
    - database_password={{MySQL|MYSQL_ROOT_PASSWORD}}
  plugins:
    - !plugin
      id: oncXN
      restart: true
      arguments:
        - dir=/usr/local/tomcat/webapps/ROOT.war
        - delete_dir=/usr/local/tomcat/webapps/ROOT
MySQL:
  image: mysql:latest
  host: host2
  mem_min: 400m
  environment:
    - MYSQL_USER=root
    - MYSQL_DATABASE=names
    - MYSQL_ROOT_PASSWORD={{alphanumeric|8}}

Вы заметите, что параметр cluster_size позволяет вам указать количество контейнеров для запуска (с теми же зависимостями приложения). В этом случае кластер серверов приложений Tomcat можно развернуть, указав cluster_size .

Параметр host позволяет указать хост, который вы хотите использовать для развертывания контейнера. Это возможно, если вы выбрали Weave в качестве сетевого слоя при создании кластеров . Таким образом, вы можете обеспечить высокую доступность кластеров серверов приложений на разных хостах (или в разных регионах) и соблюдать правила соответствия, чтобы база данных работала, например, на отдельном хосте. Вот значения, поддерживаемые для параметра хоста:

  • host1, host2, host3 и т. д. — случайным образом выбирает хост в дата-центре (или кластере) для развертывания контейнера
  • IP-адрес 1, IP-адрес 2 и т. Д. — позволяет пользователю указать фактические IP-адреса для использования при развертывании контейнера
  • Имя хоста 1, Имя хоста 2 и т. Д. — позволяет пользователю указать фактические имена хостов, которые будут использоваться для развертывания контейнеров
  • Подстановочные знаки (например, «db- » или «app-srv- ») — для указания подстановочных знаков для использования в имени хоста

В этом шаблоне приложения вы заметите, что контейнер Tomcat вызывает подключаемый модуль сценария во время запроса для настройки контейнера. Эти плагины можно создать, перейдя в « Управление»> «Плагины» . Как только сценарий будет предоставлен, агент DCHQ выполнит этот сценарий внутри контейнера . Пользователь может указать аргументы, которые могут быть переопределены во время запроса и после предоставления. Все, что предшествует знаку $, считается аргументом — например, $ file_url может быть аргументом, который позволяет разработчикам указывать URL-адрес загрузки для файла WAR. Это может быть изменено во время запроса и после предоставления, когда пользователь хочет обновить файл WAR Java на работающем контейнере.

Вот параметры, поддерживаемые при вызове плагина:

  • id — это идентификатор плагина. Это можно найти в разделе « Управление»> «Плагины», а затем нажмите « Изменить» на выбранном плагине.
  • restart — это логический параметр. Если установлено значение true , то контейнер перезапускается после выполнения плагина.
  • аргументы — вы можете переопределить аргументы, указанные в плагине здесь. Аргументы могут быть переопределены при создании шаблона, при развертывании приложения и после предоставления.
  • жизненный цикл — используется для обнаружения службы и подробно рассматривается в следующем разделе

Использование этапов жизненного цикла плагина для обнаружения службы Docker

Об обнаружении службы Docker подробно рассказывается на этой странице:

После входа в DCHQ (либо размещенную версию DCHQ.io, либо локальную версию) пользователь может перейти к « Управление» > « Приложение / Машина» и нажать кнопку « , чтобы создать новый шаблон Docker Compose .

Вот шаблон Docker Compose для Java-приложения Docker с Docker Nginx, Tomcat и MariaDB

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
LB:
  image: nginx:latest
  publish_all: true
  mem_min: 50m
  host: host1
  plugins:
    - !plugin
      id: 0H1Nk
      restart: true
      lifecycle: on_create, post_scale_out:AppServer, post_scale_in:AppServer, post_start:AppServer, post_stop:AppServer
      arguments:
        # Use container_private_ip if you're using Docker networking
        - servers=server {{AppServer | container_private_ip}}:8080;
        # Use container_hostname if you're using Weave networking
        #- servers=server {{AppServer | container_hostname}}:8080;
AppServer:
  image: tomcat:8.0.21-jre8
  mem_min: 600m
  host: host1
  cluster_size: 1
  environment:
    - database_driverClassName=com.mysql.jdbc.Driver
    - database_url=jdbc:mysql://{{MariaDB|container_hostname}}:3306/{{MariaDB|MYSQL_DATABASE}}
    - database_username={{MariaDB|MYSQL_USER}}
    - database_password={{MariaDB|MYSQL_ROOT_PASSWORD}}
  plugins:
    - !plugin
      id: oncXN
      restart: true
      arguments:
        - dir=/usr/local/tomcat/webapps/ROOT.war
        - delete_dir=/usr/local/tomcat/webapps/ROOT
MariaDB:
  image: mariadb:latest
  host: host1
  mem_min: 400m
  environment:
    - MYSQL_USER=root
    - MYSQL_DATABASE=names
    - MYSQL_ROOT_PASSWORD={{alphanumeric|8}}

Инфраструктура обнаружения служб в DCHQ предоставляет управляемые событиями этапы жизненного цикла, которые выполняют пользовательские сценарии для повторной настройки компонентов приложения. Это очень важно при масштабировании кластеров, для которых балансировщик нагрузки может потребоваться переконфигурировать или набор реплик может потребоваться перебалансировать.

Вы заметите, что плагин Nginx выполняется на следующих этапах или событиях:

  • Когда создается контейнер Nginx — в этом случае IP- адреса контейнеров серверов приложений внедряются в файл конфигурации по умолчанию, чтобы упростить балансировку нагрузки для нужных сервисов.
  • Когда кластер серверов приложений масштабируется или масштабируется — в этом случае обновленные IP- адреса контейнеров серверов приложений внедряются в файл конфигурации по умолчанию, чтобы упростить распределение нагрузки для нужных сервисов.
  • Когда серверы приложений останавливаются или запускаются — в этом случае обновленные IP- адреса контейнеров серверов приложений внедряются в файл конфигурации по умолчанию, чтобы облегчить балансировку нагрузки для нужных сервисов.

Таким образом, инфраструктура обнаружения служб здесь выполняет как регистрацию служб (путем отслеживания IP-адресов контейнера и значений переменных среды), так и обнаружение служб (путем выполнения правильных сценариев во время определенных событий или этапов).

Параметр жизненного цикла в подключаемых модулях позволяет указать точную стадию или событие для выполнения подключаемого модуля. Если жизненный цикл не указан, то по умолчанию плагин будет выполняться on_create . Вот поддерживаемые этапы жизненного цикла:

  • on_create — выполняет плагин при создании контейнера
  • on_startзапускает плагин после запуска контейнера
  • on_stop — выполняет плагин до остановки контейнера
  • on_destroy — выполняет плагин перед уничтожением контейнера
  • post_create — выполняет плагин после того, как контейнер создан и запущен
  • post_start [: Node] — запускает плагин после запуска другого контейнера
  • post_stop [: Node]запускает плагин после остановки другого контейнера
  • post_destroy [: Node]запускает плагин после уничтожения другого контейнера
  • post_scale_out [: Node]запускает плагин после масштабирования другого кластера
  • post_scale_in [: Node]запускает плагин после масштабирования другого кластера

Использование параметра registry_id для извлечения изображений из частного реестра

После входа в DCHQ (либо размещенную версию DCHQ.io, либо локальную версию) пользователь может перейти к « Управление» > « Приложение / Машина» и нажать кнопку « , чтобы создать новый шаблон Docker Compose .

Вот шаблон Docker Compose для стека приложений Docker LAOP с Docker Apache HTTP Server, Docker PHP-Apache и Docker Oracle XE, извлеченный из частного реестра:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
HTTP-LB:
  image: httpd:latest
  publish_all: true
  host: host1
  mem_min: 50m
  plugins:
    - !plugin
      id: uazUi
      restart: true
      lifecycle: on_create, post_scale_out:PHP, post_scale_in:PHP
      arguments:
        # Use container_private_ip if you're using Docker networking
        - BalancerMembers=BalancerMember http://{{PHP | container_private_ip}}:80
        # Use container_hostname if you're using Weave networking
        #- BalancerMembers=BalancerMember http://{{PHP | container_hostname}}:80
PHP:
  image: dchq/php-example:latest
  mem_min: 600m
  host: host1
  publish_all: false
  environment:
  - DB_HOST={{Oracle|container_private_ip}}
  - DB_USER={{Oracle|username}}
  - DB_PASS={{Oracle|password}}
  - DB_NAME={{Oracle|sid}}
  - DB_PORT=1521
  - DB_PROVIDER=oraclexe
Oracle:
  image: dchq/oracle-xe:latest
  registry_id: 2c9180ff4f33df5f014f34iob7iu806c
  publish_all: false
  host: host1
  mem_min: 400m
  environment:
    - username=system
    - password=oracle
    - sid=xe

Вы заметите, что параметр registry_id ссылается на идентификатор реестра Docker, созданного в разделе « Управление»> «Облачные поставщики» .

Где я могу найти примеры кода и шаблона приложения?

Все шаблоны заявок DCHQ опубликованы на официальной странице организации:

Мы настоятельно рекомендуем клиентам DCHQ On-Premise зарегистрироваться на платформе SaaS DCHQ.io (БЕСПЛАТНО), прежде чем попробовать DCHQ On-Premise. Это позволит вам опробовать моделирование приложений, развертывание и управление жизненным циклом на уже опубликованных многоуровневых шаблонах приложений.

Вот самые популярные и полные примеры:

Докер Java

Стеки Docker LAMP, LAPP и LAOP

Докер MEAN.JS с Монго

Docker Node.js

Докер Питон

Докер Рубин на Рельсах

Набор реплики Docker Mongo

  • Docker Mongo Replica Установить шаблон. Этот шаблон поддерживает обнаружение службы и управление конфигурацией контейнера. Инфраструктура обнаружения служб в DCHQ предоставляет управляемые событиями этапы жизненного цикла, которые выполняют пользовательские сценарии для повторной настройки компонентов приложения. Это очень важно при масштабировании кластеров, для которых может потребоваться повторная балансировка набора реплик.

Докер Couchbase Cluster

  • Шаблон кластера Docker Couchbase. Этот шаблон поддерживает обнаружение службы и управление конфигурацией контейнера. Инфраструктура обнаружения служб в DCHQ предоставляет управляемые событиями этапы жизненного цикла, которые выполняют пользовательские сценарии для повторной настройки компонентов приложения. Это очень важно при масштабировании кластеров, для которых может потребоваться повторная балансировка набора реплик.

Докер Друпал с MySQL

Докер WordPress с MySQL :