Как связать докер-контейнер в Azure? - PullRequest
0 голосов
/ 07 декабря 2018

Я хотел бы связать два контейнера Docker, развернутых в Azure (ACS).У меня есть контейнер с сервером api, созданный в NodeJs, и другой контейнер, работающий под управлением Mongo.Я хотел бы использовать что-то вроде «--link mymongodb», как я делаю на моем компьютере, но в создании контейнера z такого параметра нет.Для создания контейнеров я использую этот синтаксис:

az container create --name my-app --image myprivateregistry/my-app --resource-group MyResourceGroup --ports 80 --ip-address public

Возможно, мне нужно создать виртуальную сеть?Не могли бы вы указать мне правильное направление, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Вам нужно будет указать оба изображения (ваше приложение и монго) в yml-файле Azure.Он выглядит как файл yml для создания докера, но это не так.

Если ваше приложение node.js работает на порту 3000, это может быть конфигурация yml для служб контейнера Azure:

apiVersion: 2018-06-01
location: westeurope
name: my-app-with-mongo
properties:
  containers:
  - name: mongodb
    properties:
      image: mongo
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
      ports:
      - port: 27017
  - name: my-app
    properties:
      image: myprivateregistry/my-app
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
      ports:
      - port: 3000
  osType: Linux
  ipAddress:
    type: Public
    dnsNameLabel: my-app
    ports:
    - protocol: tcp
      port: '3000'
  imageRegistryCredentials:
  - server: myprivateregistry.azurecr.io
    username: username-for-myprivateregistry
    password: password-for-myprivateregistry
tags: null
type: Microsoft.ContainerInstance/containerGroups

Просто запустите его с

az container create --resource-group MyResourceGroup --file azure-container-group.yml

После этого вы сможете получить доступ к своей базе данных mongo на локальном хосте: 27017, так как все контейнеры работают на одном хосте:

Экземпляры контейнера Azure поддерживают развертываниенескольких контейнеров на один хост с использованием группы контейнеров.

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-multi-container-yaml

Также учитывайте порядок контейнеров, указанный в файле yml.,Сначала вы захотите запустить mongo, а затем - приложение node.js, так как оно, вероятно, хочет подключиться к mongo при запуске.

0 голосов
/ 10 декабря 2018

Я думаю, что вы ищете такие функции, как docker compose в Azure.Если вы хотите использовать экземпляр контейнера Azure, вам следует взглянуть на Развертывание группы контейнеров из нескольких контейнеров с помощью YAML или Шаблон Azure .Это поможет вам создать мультиконтейнер в группе контейнеров, и контейнеры могут соединяться друг с другом.

Кроме того, вы можете попробовать Azure Kubernetes Service , возможно, это также может помочьвы.Если вам нужна дополнительная помощь, пожалуйста, дайте мне сообщение.

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