如何将多个映像推送到azure注册表
我想在azure上部署一个多容器应用程序,以使用docker compose文件创建图像,类似于此:如何将多个映像推送到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:
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好吧,我不确定为什么这是一个向上投票,如果这显然不是答案?