如何在Azure上链接Docker容器?

时间:2018-12-07 18:09:38

标签: azure docker

我想链接部署在Azure(ACS)上的两个Docker容器。 我有一个容器运行NodeJs中的api服务器,另一个容器运行Mongo。 我想像在我的电脑上一样使用“ --link mymongodb”之类的东西,但是在az container create中没有这样的参数。 要创建容器,我使用以下语法:

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

可能我需要创建一个虚拟网络? 你能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

我认为您正在搜索Azure上的docker compose之类的功能。如果要使用Azure容器实例,则应查看Deploy a multi-container container group with YAML或使用Azure Template。这将帮助您在容器组中创建多容器,并且容器可以相互连接。

此外,您可以尝试使用Azure Kubernetes Service,也许它也可以为您提供帮助。如果您需要更多帮助,请给我消息。

答案 1 :(得分:0)

您将需要在Azure yml文件中同时指定两个图像(您的应用程序和mongo)。看起来像docker compose yml文件,但事实并非如此。

假设您的node.js应用程序在端口3000上运行,则这可能是Azure容器服务的yml配置:

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

然后,您可以在localhost:27017上访问mongo数据库,因为所有容器都在同一主机上运行:

  

Azure容器实例支持多个部署   使用容器组将容器添加到单个主机上。

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

还请注意您在yml文件中指定的容器的顺序。您将要先启动mongo,然后再启动node.js应用程序,因为它可能想在启动时连接到mongo。