Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将多个映像推送到azure注册表_Azure_Docker - Fatal编程技术网

如何将多个映像推送到azure注册表

如何将多个映像推送到azure注册表,azure,docker,Azure,Docker,我想在azure上部署一个多容器应用程序,以使用docker compose文件创建图像,类似于此: version: '3.3' services: app1: image: app1 container_name: "app1" ports: - "5000:5000" restart: always build: context: ./app1 dockerfile: Dockerfile app2:

我想在azure上部署一个多容器应用程序,以使用docker compose文件创建图像,类似于此:

version: '3.3'

services:

  app1:
    image: app1
    container_name: "app1"
    ports:
      - "5000:5000"
    restart: always
    build:
      context: ./app1
      dockerfile: Dockerfile

  app2:
    image: app2
    container_name: "app2"
    ports:
      - "5000:5000"
    restart: always
    build:
      context: ./app2
      dockerfile: Dockerfile
这有助于我实现流程的自动化,问题是这之后的每一步都需要解决 要对每个图像单独使用命令,我在管道中有以下步骤:

1) 标记图像:

sudo docker tag app1 services.azurecr.io/samples/app1
2) 将映像推送到azure注册表:

sudo docker push services.azurecr.io/samples/app1
3) 部署容器:

az container create \
    --name XXX
    --ports  5000 5100 \
    --memory 3 \
    --cpu 1 \
    --azure-file-volume-share-name legaldocuments \
    --azure-file-volume-mount-path /app/data \
    ...
    ...
    ...

有没有一种方法可以将其包含在多个容器的单个文件中?至少标记并推送映像的一部分。

要将多个映像推送到Azure容器注册表,需要使用注册表的loginServer名称对它们进行标记

按照步骤操作

步骤1:您需要为这些图像附加标签,

docker tag azurecontainerservicepoc acrarampoc/azurecontainerservicepoc:dev
步骤2:将Docker映像推送到Azure容器注册表

docker push your_acr_name.azurecr.io/elasticsearch:6.2.4
然后为了推送多个图像,您可以尝试使用Bash脚本

在您的情况下,它将是:

docker push --all-tags   your_acr_name.azurecr.io 

要将多个映像推送到Azure容器注册表,它们需要使用注册表的loginServer名称进行标记

按照步骤操作

步骤1:您需要为这些图像附加标签,

docker tag azurecontainerservicepoc acrarampoc/azurecontainerservicepoc:dev
步骤2:将Docker映像推送到Azure容器注册表

docker push your_acr_name.azurecr.io/elasticsearch:6.2.4
然后为了推送多个图像,您可以尝试使用Bash脚本

在您的情况下,它将是:

docker push --all-tags   your_acr_name.azurecr.io 

您可以使用docker任务来实现这一点,在gui中也可以实现这一点

- task: Docker@2
  displayName: Push image
  inputs:
    containerRegistry: |
      $(dockerHub)
    repository: $(imageName)
    command: push
    tags: |
      test1
      test2
      etc

我认为等效的方法不适用于构建,因此您必须有一个带循环的脚本或多个构建步骤来构建

您可以使用docker任务来实现这一点(有点),gui中也可以实现这一点

- task: Docker@2
  displayName: Push image
  inputs:
    containerRegistry: |
      $(dockerHub)
    repository: $(imageName)
    command: push
    tags: |
      test1
      test2
      etc

我认为等效的方法不适用于构建,因此您必须有一个带循环的脚本或多个构建步骤来构建

您可以创建一个bash脚本?@mmking是的,我可以,但不是一个干净的解决方案,我认为,这是最后一个选项,您可以指定
映像:
作为您想要的存储库限定映像名,Compose将为您标记它。这将为您节省一步,但这不是一个完整的答案。您可以创建一个bash脚本?@mmking是的,我可以,但不是一个干净的解决方案,我认为,这是最后一个选项。您可以指定
图像:
作为您想要的存储库限定图像名称,Compose将为您标记它。这将为您节省一步,但这并不是一个完整的答案。不确定您的意思,docker中是否存在--all tags参数?或者我必须创建一个bash脚本?如果是这样的话,为什么它被称为docker…
而不是bash…
我不知道是否有命令,我问你从这里的答案尝试似乎opton只能拉图像,而不是推图像ihmm好吧,我不确定为什么这是上浮的,如果这显然不是答案?不确定你的意思,docker中是否存在--all tags参数?或者我必须创建一个bash脚本?如果是这样的话,为什么它被称为docker…
而不是bash…
我不知道是否有命令,我问你从这里的答案尝试,似乎opton只能拉图像,而不是推图像ihmm好吧,我不确定为什么这是一个向上投票,如果这显然不是答案?