- DCHQ полностью совместим с Docker Compose ( https://docs.docker.com/compose/compose-file/ ).
Однако платформа предоставляет базовые ( необязательные ) улучшения для 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
- Использование GitHub Gist для контроля версий и резервного копирования шаблонов приложений
- Регистрация частных и публичных репозиториев Docker
- Автоматизация создания образов Docker и передача их в зарегистрированные реестры Docker
- Создание базового шаблона приложения Node.js Hello World
- Использование привязок переменных среды для создания WordPress с шаблоном приложения MySQL
- Использование плагинов и параметра хоста для развертывания высокодоступного приложения Docker Java
- Использование этапов жизненного цикла плагина для обнаружения службы Docker
- Использование параметра registry_id для извлечения изображений из частного реестра
- Где я могу найти примеры кода и шаблона приложения?
Создание шаблонов Docker Compose
Docker Compose — это шаблон YAML для определения многоуровневых или распределенных приложений с несколькими образами, которые могут работать на любом хосте Linux с поддержкой Docker, работающем где угодно.
После входа в DCHQ (либо размещенную версию DCHQ.io, либо локальную версию) пользователь может перейти к « Управление» > « Приложение / Машина» и нажать кнопку « +» , чтобы создать новый шаблон Docker Compose .
Обязательные поля :
- Имя — это название шаблона приложения.
- Версия — это определенный пользователем номер версии. Чтобы использовать надлежащий контроль версий в 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.
- Функции — это функции, которые поддерживает шаблон приложения. Автор шаблона приложения может выбирать из ряда функций, таких как резервное копирование, высокая доступность, горизонтальное масштабирование, автоматическое обнаружение служб и т. Д.
- Внешняя ссылка — позволяет владельцу шаблона приложения добавить ссылку на официальную документацию или блог.
Использование GitHub Gist для контроля версий и резервного копирования шаблонов приложений
Чтобы правильно управлять различными версиями шаблона приложения, пользователь может зарегистрировать учетную запись GitHub или GitHub Enterprise и выполнить резервное копирование всех шаблонов в GitHub Gist.
Для этого пользователь может перейти к « Управление»> «Облачные поставщики», а затем нажать кнопку « +» , чтобы выбрать GitHub.com / GitHub Enterprise .
Обязательные поля :
- Имя — это имя учетной записи GitHub.
- Тип — это тип учетной записи GitHub. Доступные опции: GitHub и GitHub Enterprise .
- Токен доступа — это токен доступа для вашей учетной записи GitHub. Токен доступа можно сгенерировать, войдя в свою учетную запись GitHub и перейдя в « Настройки»> «Личные токены доступа» .
- Политика шаблонов — это политика резервного копирования шаблонов Docker Compose и Machine Compose . Резервное копирование запускается каждый раз, когда вносятся изменения и шаблон сохраняется. Это означает, что пользовательский номер версии (v1.0) может иметь несколько резервных копий в Gist на основе изменений, внесенных в шаблон. Доступные варианты:
- Не создавать резервные копии — это означает, что ваши шаблоны не будут сохранены.
- Создавайте резервные копии всех данных с помощью общедоступного контроля доступа. Это означает, что все ваши шаблоны будут сохранены и будут общедоступны.
- Резервное копирование всех с частным контролем доступа — это означает, что все ваши шаблоны будут сохранены и будут доступны только владельцу учетной записи GitHub
- Тот же контроль доступа, что и у чертежа — это означает, что шаблон будет заархивирован и Gist будет общедоступным, если владелец шаблона приложения поделился им со всеми пользователями. Если владелец шаблона пометил его как личный, то Gist будет доступен только владельцу учетной записи GiHub.
- Политика плагинов — это политика резервного копирования ваших плагинов BASH-скриптов. Они используются для управления конфигурацией контейнера и обнаружения услуг. Резервное копирование запускается каждый раз, когда вносятся изменения и плагин сохраняется. Это означает, что пользовательский номер версии (v1.0) может в конечном итоге иметь несколько резервных копий в Gist на основе изменений, внесенных в плагин. Доступные параметры такие же, как и в шаблонах.
Регистрация частных и публичных репозиториев Docker
Пользователь может зарегистрировать частные или публичные репозитории для Docker Registry , Docker Hub , Quay или Red Hat Container Registry . Пользователь может использовать недавно зарегистрированный репозиторий следующими способами:
- Вставьте изображения в хранилище, используя функцию Image Build .
- Извлекайте изображения из хранилища как часть шаблона Docker Compose . Параметр registry_id будет необходим для ссылки на зарегистрированный репозиторий.
- Резервное копирование запущенных контейнеров путем создания новых образов и загрузки их в зарегистрированный репозиторий. Это можно сделать, щелкнув меню « Действия» для запущенного приложения и выбрав « Резервное копирование» .
Чтобы зарегистрировать Docker-репозиторий, пользователь может перейти к « Управление»> «Облачные провайдеры» и затем нажать кнопку « +» , чтобы выбрать Docker Registries .
Обязательные поля :
- Имя — это имя реестра Docker
- URL — это URL-адрес реестра Docker (например, для Docker Hub это https://hub.docker.com/ )
- Электронная почта — это адрес электронной почты, используемый для реестра Docker
- Имя пользователя — это имя пользователя, используемое для реестра Docker
- Пароль — это пароль для реестра Docker
- Зарегистрированные пользователи — это пользователи, которые смогут извлекать или помещать изображения в этот реестр. Зарегистрированные пользователи не имеют права управлять или удалять этот реестр. По умолчанию реестр помечен как закрытый. Однако владелец реестра может выбирать определенных пользователей или группы.
ВАЖНО — после сохранения реестра присваивается автоматически сгенерированный идентификатор. Этот идентификатор будет использоваться при создании шаблонов 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. Это облегчает ежедневные и ночные сборки для пользователей.
- Кто может управлять — пользователь может пометить эту сборку как частную или поделиться ею с другими пользователями или группами.
После заполнения обязательных полей пользователь может нажать « Сохранить» .
Затем пользователь может нажать кнопку « Play», чтобы создать образ Docker по запросу.
Создание базового шаблона приложения 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. Это позволит вам опробовать моделирование приложений, развертывание и управление жизненным циклом на уже опубликованных многоуровневых шаблонах приложений.
- Все примеры кода доступны в нашем репозитории GitHub: https://github.com/dchqinc.
Вот самые популярные и полные примеры:
Докер Java
- 28 Шаблоны приложений Java для Docker включены. Java-приложение Docker, которое можно развернуть на серверах приложений Docker WebSphere, JBoss, Tomcat и Jetty. Приложение Java также может подключаться к Docker MySQL, MariaDB, PostgreSQL и Oracle XE. Этот проект является общедоступным и предназначен для предоставления пошагового руководства по Dockerizing и управлению вашими Java-приложениями с использованием DCHQ.
- Проект GitHub: https://github.com/dchqinc/docker-java
- Демо-версия блога и записи: http://www.javacodegeeks.com/2015/12/docker-java-application-with-solr-mongo-cassandra.html
- 24 шаблоны приложений Java для Docker включены. Java-приложение, которое использует Docker Solr для полнотекстового поиска и может быть развернуто на серверах приложений Docker JBoss, Tomcat и Jetty. Приложение Java также может подключаться к MySQL, Oracle XE, Cassandra и Mongo. Этот проект является общедоступным и предназначен для предоставления пошагового руководства по Dockerizing и управлению вашими Java-приложениями с использованием DCHQ.
- 5 Шаблоны приложений Docker Java включены. Приложение Java Movie Store, которое можно развернуть на серверах приложений Docker GlassFish, Tomcat и Jetty. Приложение Java также может подключаться к Docker Mongo и Oracle XE.
- Доступ к шаблону Docker GlassFish: https://www.dchq.io/landing/products.html#/library?org=DCHQ&bl=2c91800e502205c3015044dbc4202adc
- Демо- версия блога и записи: http://dchq.co/blog/end-to-end-automation-for-a-docker-based-java-app-on-four-application-stacks-tomcat-jboss-glassfish-and -jetty-на-любой-облака
Стеки Docker LAMP, LAPP и LAOP
- 9 Шаблоны приложений Docker PHP для стеков Docker LAMP, LAPP и LAOP. Простое приложение PHP, которое можно развернуть в стеках Docker LAMP (Linux-Apache-MySQL-PHP), LAPP (Linux-Apache-PostgreSQL-PHP) и LAOP (Linux-Apache-Oracle-PHP). Этот проект является общедоступным и предназначен для предоставления пошагового руководства по Dockerizing и управлению вашими PHP-приложениями с использованием DCHQ.
Докер MEAN.JS с Монго
- Докер MEAN.JS с Монго. Этот шаблон поддерживает управление конфигурацией контейнера. Образ MEAN.JS автоматически создается из официального проекта GitHub ( https://github.com/meanjs/mean ). MEAN.JS использует привязки переменных среды для подключения к Mongo и подключаемому модулю для внедрения учетных данных базы данных и частного IP-контейнера в файл development.js динамически или по запросу.
Docker Node.js
- 3 Шаблоны приложений Docker Node.js включены. Пример Docker Node.js «Hello World» с Nginx и HTTP-сервером Apache для обратного прокси-сервера и балансировки нагрузки.
- Проект GitHub: https://github.com/dchqinc/docker-nodejs
- Доступ к шаблонам
Докер Питон
- 3 Docker Flask Python с включенными шаблонами приложений MongoDB. Пример Docker Python «ToDo» с Nginx и HTTP-сервером Apache для обратного прокси-сервера и балансировки нагрузки.
Докер Рубин на Рельсах
- 3 Docker Ruby on Rails «Starter Kit» с включенными шаблонами приложений Redis, Memcached и PostgreSQL. Пример Docker Rails с Nginx и HTTP-сервером Apache для обратного прокси-сервера и балансировки нагрузки.
Набор реплики Docker Mongo
- Docker Mongo Replica Установить шаблон. Этот шаблон поддерживает обнаружение службы и управление конфигурацией контейнера. Инфраструктура обнаружения служб в DCHQ предоставляет управляемые событиями этапы жизненного цикла, которые выполняют пользовательские сценарии для повторной настройки компонентов приложения. Это очень важно при масштабировании кластеров, для которых может потребоваться повторная балансировка набора реплик.
- Доступ к шаблону: https://www.dchq.io/landing/products.html#/library?org=DCHQ&bl=2c91801a510732e10151362106b5567e
- Демонстрация блога и записи: http://dchq.co/docker-service-discovery.html
Докер Couchbase Cluster
- Шаблон кластера Docker Couchbase. Этот шаблон поддерживает обнаружение службы и управление конфигурацией контейнера. Инфраструктура обнаружения служб в DCHQ предоставляет управляемые событиями этапы жизненного цикла, которые выполняют пользовательские сценарии для повторной настройки компонентов приложения. Это очень важно при масштабировании кластеров, для которых может потребоваться повторная балансировка набора реплик.
Докер Друпал с MySQL
- Докер Друпал с MySQL. Этот шаблон поддерживает управление конфигурацией контейнера. Контейнер Drupal использует привязки переменных среды для подключения к MySQL и подключаемого модуля для внедрения учетных данных базы данных и частного IP-контейнера в файл default.settings.php динамически или во время запроса.
Докер WordPress с MySQL :
- Докер WordPress с MySQL. Контейнер WordPress использует привязки переменных среды для подключения к MySQL.
- Доступ к шаблону: https://www.dchq.io/landing/products.html#/library?org=DCHQ&bl=2c9180ff4f33df5f014f348b16350058
- Демо- версия блога и записи: http://dchq.co/blog/install-dchq-on-premise
Ссылка: | Примеры связывания переменных среды Docker — Java, Node.Js, PHP, Python и Ruby On Rails от нашего партнера по JCG Амджада Афана в блоге DCHQ.io. |