在一个 Azure 应用服务计划上运行两个 docker 容器



>我有两个容器需要在同一台机器上运行。 第一个容器是服务器,第二个容器是代理。服务器映像标记名称:本地 wptserver 服务器映像标记名称:本地 wptagent

我可以让它在本地工作,所以我正在尝试将其部署到云 (Azure( 供团队使用。

这就是我在本地运行它的方式:

docker run -d -p 4000:80 local-wptserver
docker run -d -p 4001:80 --network="host" -e "SERVER_URL=http://localhost:4000/work/" -e "LOCATION=EastUS_wptdriver" local-wptagent

这基本上将服务器和代理设置为相互通信,因此一旦我开始对服务器进行 API 调用,它就会与代理一起安排作业并向我返回结果。

但是,由于我的映像现在位于 Azure 容器注册表中,因此如何在将容器部署到 Web 应用时使用这些额外参数(--network="host" -e "SERVER_URL=http://localhost:4000/work/" -e "LOCATION=EastUS_wptdriver"(进行实例化? 在创建映像之前,我可以将其添加到 docker 文件中吗?如果是,如何?

注意:我使用相同的 Azure 应用服务计划来确保两个 Web 应用(从 Azure 容器注册表中的两个不同存储库构建:服务器和代理(位于同一台计算机上。

如果要在 Azure Web 应用中部署多个容器,则需要使用 docker-compose 文件来部署多个容器。您可以按照示例中的步骤操作。

然后,在 Azure Web App 的 docker compose 中不支持 --network,可以在此处查看所有受支持的撰写选项。但别担心,容器可以通过端口相互通信。

根据将映像推送到 Azure 容器注册表的消息。然后,应使用 ACR 作为 docker 注册表。因此,需要在此处设置 ACR 的环境变量和详细信息。在我提供的链接中,您也知道许多详细信息。

最新更新