将多个容器上传到 Azure 容器注册表

Upload multiple containers to Azure Container registry

我有 ASP.NET 核心应用程序,打包到 docker。

这是我的 docker-compose 文件,里面有 kibana 和 EL 图片。

  version: "3.1"

services:
  tooseeweb:
    image: ${DOCKER_REGISTRY-}tooseewebcontainer
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 5000:80
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
    container_name: elasticsearch
    ports:
      - "9200:9200"
    volumes:
      - elasticsearch-data:/usr/share/elasticsearch/data
    networks:
      - docker-network

  kibana:
    image: docker.elastic.co/kibana/kibana:6.2.4
    container_name: kibana
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    networks:
      - docker-network

networks:
  docker-network:
    driver: bridge

volumes:
  elasticsearch-data:

我尝试通过本文将其部署到 Azure 容器注册表 Article link

一切正常,我看到我的 APIб 它在 80 端口下。但是没看到kibana和elasticsearch。

在本地机器上我创建了 docker-compose up 并通过 56019200 看到了它,但是在 Azure 容器注册表上这个端口不起作用。我如何一起部署?或者我需要单独部署容器?

首先,Azure 容器注册表会为您存储 docker 个图像。所以你需要将图像推送到它,而不是 运行 容器。并且你不需要将它们分开,但你需要创建名称为 your_acr_name.azurecr.io/image_name:tag 的所有图像,然后将它们推送到 ACR.

正如我在你的问题中看到的,你只创建了名称为 ${DOCKER_REGISTRY-}tooseewebcontainer 的图像 tooseeweb,当你将此图像推送到 ACR 时,它只会为你存储这个,不会包含另外两张图片。

如果要将另外两张图片存储到ACR中,需要按照以下两步操作。

  1. 标记你的图片。例如:
    docker tag docker.elastic.co/elasticsearch/elasticsearch:6.2.4 your_acr_name.azurecr.io/elasticsearch:6.2.4
  1. 将图像推送到 ACR。
    docker push your_acr_name.azurecr.io/elasticsearch:6.2.4