我想链接部署在Azure(ACS)上的两个Docker容器。 我有一个容器运行NodeJs中的api服务器,另一个容器运行Mongo。 我想像在我的电脑上一样使用“ --link mymongodb”之类的东西,但是在az container create中没有这样的参数。 要创建容器,我使用以下语法:
az container create --name my-app --image myprivateregistry/my-app --resource-group MyResourceGroup --ports 80 --ip-address public
可能我需要创建一个虚拟网络? 你能指出我正确的方向吗?
答案 0 :(得分:1)
我认为您正在搜索Azure上的docker compose之类的功能。如果要使用Azure容器实例,则应查看Deploy a multi-container container group with YAML或使用Azure Template。这将帮助您在容器组中创建多容器,并且容器可以相互连接。
此外,您可以尝试使用Azure Kubernetes Service,也许它也可以为您提供帮助。如果您需要更多帮助,请给我消息。
答案 1 :(得分:0)
您将需要在Azure yml文件中同时指定两个图像(您的应用程序和mongo)。看起来像docker compose yml文件,但事实并非如此。
假设您的node.js应用程序在端口3000上运行,则这可能是Azure容器服务的yml配置:
apiVersion: 2018-06-01
location: westeurope
name: my-app-with-mongo
properties:
containers:
- name: mongodb
properties:
image: mongo
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 27017
- name: my-app
properties:
image: myprivateregistry/my-app
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 3000
osType: Linux
ipAddress:
type: Public
dnsNameLabel: my-app
ports:
- protocol: tcp
port: '3000'
imageRegistryCredentials:
- server: myprivateregistry.azurecr.io
username: username-for-myprivateregistry
password: password-for-myprivateregistry
tags: null
type: Microsoft.ContainerInstance/containerGroups
简单地以
开始az container create --resource-group MyResourceGroup --file azure-container-group.yml
然后,您可以在localhost:27017上访问mongo数据库,因为所有容器都在同一主机上运行:
Azure容器实例支持多个部署 使用容器组将容器添加到单个主机上。
https://docs.microsoft.com/en-us/azure/container-instances/container-instances-multi-container-yaml
还请注意您在yml文件中指定的容器的顺序。您将要先启动mongo,然后再启动node.js应用程序,因为它可能想在启动时连接到mongo。