使用docker compose将多个容器部署到Azure

时间:2019-12-17 06:26:36

标签: azure docker

我已经创建了一个使用多个容器的服务,我的项目的基本结构是:

|--maindir:
   |--app1:
      |--dockerfile1
      |--proyect folder...
   |--app2:
      |--dockerfile2
      |--proyect folder...
   |--app3:
      |--dockerfile3
      |--proyect folder...

当前我正在部署每个容器的工作是:

1)使用docker。建立以创建图像 2)标记图像并将其推送到Azure注册表 3)在Azure注册表上的映像之外创建容器:

az container create \
    --resource-group mygroup \
    --name manager \
    --image core.azurecr.io/samples/manager \
    --registry-login-server xxx \
    --registry-password xxx   \
    --registry-username xxx \
    --ports  5000 5100 \
    --memory 3 \
    --cpu 1 \
    --ip-address public \
    --dns xxx \
    --azure-file-volume-account-name xxx \
    --azure-file-volume-account-key  xxx \
    --azure-file-volume-share-name xxx \
    --azure-file-volume-mount-path /xxx

我需要每个容器的每个设置,例如DNS,卷,内存...。

是否可以使用docker compose.yml文件来执行此操作?

我在Azure文档的示例中找到了这个:

https://docs.microsoft.com/en-us/azure/app-service/containers/tutorial-multi-container-app

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

但是有人认为图像已经在天蓝色注册表中,对我来说不是这种情况。 如果我必须一一创建并推送映像,则仅在最后使用docker compose并没有太大区别。

1 个答案:

答案 0 :(得分:0)

首先,当您使用Azure CLI命令request.inputs['inputs'].CopyFrom(tf.make_tensor_proto([tf_ex.SerializeToString()], dtype=types_pb2.DT_STRING),shape=[1]) 时,它意味着您创建了Azure容器实例,但是当您在通过链接提供的文档中引用docker-compose文件时,则意味着Azure Web应用程序。换句话说,有两种不同的Azure服务。

此外,无论何时使用docker映像,无论ACR还是Docker集线器,都需要自己创建映像并找到一个注册表以将映像推送到。

如果使用docker-compose,它可以帮助您一次构建所有映像。您只需要创建docker-compose文件,并使用值Dockerfile path设置az container create选项。您可以看一下docker-compose example