【问题标题】:Unable to get PhpMyAdmin with MariaDb docker-compose无法使用 MariaDb docker-compose 获取 PhpMyAdmin
【发布时间】:2020-04-09 20:48:25
【问题描述】:

为了练习我刚接触 Docker,我在本地环境中创建了 docker-compose.yml 文件,但我遇到了 PhpMyAdmin 的问题,它出现了一个奇怪的错误

mysqli_real_connect():php_network_getaddresses:getaddrinfo 失败: 名称或服务未知

到目前为止,我已经搜索过它,我知道这是由于 PhpMyAdmin 无法找到服务器。但无法修复。

version: '3'
services:
  myapp:
    image: 'bitnami/codeigniter:3'
    ports:
      - '8000:8000'
    volumes:
      - '.:/app'
    depends_on:
      - mariadb
  mariadb:
    image: 'bitnami/mariadb:10.3'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
  phpmyadmin:
      image: phpmyadmin/phpmyadmin
      container_name: phpmyadmin
      restart: always
      ports:
          - 8080:80
      volumes:
          - /sessions
      links:
          - mariadb

【问题讨论】:

    标签: docker phpmyadmin docker-compose mariadb


    【解决方案1】:

    您应该仔细查看documentation for the phpmyadmin image

    PhpMyAdmin 配置为连接到名为“db”的数据库服务器。或者,您可以通过设置 PMA_HOST 环境变量来提供明确的主机名。

    另外,您应该停止在您的docker-compose.yml 中使用links。此功能已弃用,并已被 Docker 维护的 DNS 服务取代,该服务允许您的容器通过名称相互引用。

    考虑到以上所有因素,您编写的文件应如下所示:

    version: '3'
    
    services:
      myapp:
        image: 'bitnami/codeigniter:3'
        ports:
          - '8000:8000'
        volumes:
          - '.:/app'
      mariadb:
        image: 'bitnami/mariadb:10.3'
        environment:
          - ALLOW_EMPTY_PASSWORD=yes
      phpmyadmin:
          image: phpmyadmin/phpmyadmin
          restart: always
          ports:
              - 8080:80
          volumes:
              - /sessions
          environment:
            PMA_HOST: mariadb
    

    您也可以将 mariadb 容器命名为“db”,而不是设置 PMA_HOST


    您会注意到我对您的撰写文件进行了一些额外的编辑:

    • 我已从您的 phpmyadmin 服务中删除了 containername 设置。通常不需要设置明确的容器名称,并且会阻止您运行此撰写文件的多个实例。

    • 我已经从您的myapp 服务中删除了depends_on,因为它很少有用:虽然它会导致您的myapp 容器在您的mariadb 容器之后启动,但Docker 实际上并不知道是否数据库实际上已启动并运行并准备好为请求提供服务,因此您的应用仍有可能在数据库实际可用之前启动。

      最好的解决方案是让您的应用程序重试失败的数据库连接。

    【讨论】:

      猜你喜欢
      • 2020-03-03
      • 1970-01-01
      • 2020-11-21
      • 2019-02-12
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多