【问题标题】:Cannot access to phpmyadmin when using docker使用docker时无法访问phpmyadmin
【发布时间】:2018-07-25 15:14:21
【问题描述】:

我在我的项目中使用了 docker,并像这样设置了我的 docker-compose 文件:

    db_service:
    container_name: database
    image: mysql:latest
    ports:
      - "3306:3306"
    environment:
      - MYSQL_USER=root
      - MYSQL_PASSWORD=mypassword
      - MYSQL_ROOT_PASSWORD=mypassword
      - MYSQL_DATABASE=my_database

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    ports:
      - "8082:80"

当我在http://localhost:8082 上登录 phpmyadmin 时,它显示一个错误

mysqli_real_connect():php_network_getaddresses:getaddrinfo 失败:
名称无法解析

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    尝试链接、依赖和环境变量 PMA_HOST

    db_service:

     container_name: database
     image: mysql:latest
     ports:
       - "3306:3306"
     environment:
       - MYSQL_USER=root
       - MYSQL_PASSWORD=mypassword
       - MYSQL_ROOT_PASSWORD=mypassword
       - MYSQL_DATABASE=my_database
     phpmyadmin:
    
     image: phpmyadmin/phpmyadmin
     container_name: phpmyadmin 
       depends_on:
       - database
     links:
       - database
     ports:
       - "8082:80"  
    

    环境:

       - MYSQL_USER=root
       - MYSQL_ROOT_PASSWORD=mypassword
       - MYSQL_PASSWORD=mypassword
       - PMA_HOST=database
    

    【讨论】:

      【解决方案2】:

      您需要链接两个容器并为 PHPMyAdmin 提供登录凭据,以便它可以连接到 MySQL 实例。请尝试以下操作:

      version: '3.2'
          services:
          db_service:
              container_name: database
              image: mysql:latest
              ports:
                - "3306:3306"
              environment:
                - MYSQL_USER=root
                - MYSQL_PASSWORD=mypassword
                - MYSQL_ROOT_PASSWORD=mypassword
                - MYSQL_DATABASE=my_database
      
          phpmyadmin:
              image: phpmyadmin/phpmyadmin
              links:
                - db_service:mysql
              ports:
                - 8082:80
              environment:
                MYSQL_ROOT_PASSWORD: mypassword
      

      【讨论】:

      • 我已经尝试链接容器,但仍然得到 mysqli_real_connect(): php_network_getaddresses: getaddrinfo failed: Name does not resolve error。
      • 我试了一下,在 docker-compose 中遇到了一个小问题。我用它的工作原理更新了我的答案。
      猜你喜欢
      • 2017-09-29
      • 2014-12-25
      • 2016-09-03
      • 2017-09-05
      • 2012-01-29
      • 2020-06-09
      • 2014-04-21
      • 2012-01-17
      • 1970-01-01
      相关资源
      最近更新 更多