azure - Azure 中的 Docker-compose - DNS 不起作用

标签 azure docker azure-web-app-for-containers

我正在尝试在 Azure 中部署 docker-compose 文件,我的 compose 文件如下所示。

version: '3'
services:
  db:
    image: mysql:latest
    restart: unless-stopped
    volumes:
      - misp-mysql:/var/lib/mysql
    environment:
      - MYSQL_DATABASE=*****
      - MYSQL_USER=*****
      - MYSQL_PASSWORD=********
      - MYSQL_ROOT_PASSWORD=********
  web:
    image: *****
    restart: unless-stopped
    ports:
      - "80:80"
    volumes:
      - misp-web:/var/www/MISP
    environment:
      - MYSQL_HOST=db
      - MYSQL_DATABASE=****
      - MYSQL_USER=*****
      - MYSQL_PASSWORD=************

当我将其部署到 Azure 时,两个容器都会启动并运行,还有第三个容器“aci--dns--sidecar”,我认为它用于 DNS 解析。但是,从 Web 容器内部,我无法解析 DB 容器。

有什么建议吗?

最佳答案

当您在Azure Web App中运行多个容器时,只能向外部暴露一个容器,并且端口只能是80或443之一。而在Web App内部,容器可以与每个容器进行通信通过容器名称及其公开的端口。对于您来说,您可以使用 Web 容器中的 db:port 访问数据库容器,我建议您首先导出数据库需要使用的端口。

关于azure - Azure 中的 Docker-compose - DNS 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64761789/

相关文章:

带有审核应用程序的 Azure Pipeline - 合并后清理

git - 在使用 php curl 将文件上传到 Azure DevOps Git 之前如何获取 oldObjectId?

azure - 容器的 WebApp 正在尝试从错误的容器注册表中提取

docker - 增加 Azure WebApp for Containers 的启动超时

azure - 在 ARM 模板中引用 Azure AD 服务主体 ID

c# - Docker 无法执行,因为找不到应用程序或未安装兼容的 .NET SDK

azure - 如何调试 Apache 中损坏的响应 header ?

linux - 如何通过Linux命令 'grep'获得值

docker - 在 dind 中从 armhf/ubuntu 构建时,回显 docker 文件中的文件失败

azure - 从 Docker 容器将 Strapi SQLite 数据库保留在 Azure 应用服务 Linux 主机上