[英]Deploy several container to azure using docker compose
我创建了一个使用多个容器的服务,我的项目的基本结构是:
|--maindir:
|--app1:
|--dockerfile1
|--proyect folder...
|--app2:
|--dockerfile2
|--proyect folder...
|--app3:
|--dockerfile3
|--proyect folder...
目前我正在做的部署每个容器是:
1)使用泊坞窗。 构建以创建映像 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:
但是那个假设图像已经在 azure 注册表中,而我的情况并非如此。 如果我必须一个一个地创建和推送图像,那么在最后使用 docker compose 并没有太大区别。
首先,当您使用 Azure CLI 命令az container create
它意味着您创建了 Azure 容器实例,但是当您参考随链接提供的文档中的 docker-compose 文件时,它意味着 Azure Web App。 换句话说,有两种不同的 Azure 服务。
此外,无论何时使用 docker 镜像,无论是 ACR 还是 Docker 集线器,都需要自己创建镜像并找到将镜像推送到的注册中心。
如果您使用 docker-compose,它可以帮助您一次构建所有图像。 您只需要创建 docker-compose 文件并使用值 Dockerfile 路径设置build
选项。 您可以查看 docker-compose 示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.