Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker phpmyadmin无法登录到MySQL服务器_Mysql_Docker_Phpmyadmin_Docker Compose - Fatal编程技术网

docker phpmyadmin无法登录到MySQL服务器

docker phpmyadmin无法登录到MySQL服务器,mysql,docker,phpmyadmin,docker-compose,Mysql,Docker,Phpmyadmin,Docker Compose,我犯了错误 用户bralion pass 123 Cannot log in to the MySQL server mysqli_real_connect(): php_network_getaddresses: getaddrinfo failed: Try again mysqli_real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Try again 这是我的码头工人 version

我犯了错误 用户bralion pass 123

 Cannot log in to the MySQL server
mysqli_real_connect(): php_network_getaddresses: getaddrinfo failed: Try again
 mysqli_real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Try again
这是我的码头工人

version: "3.1"
services:

    webserver:
      image: nginx:alpine
      container_name: bralion-webserver
      working_dir: /application
      networks:
        itbcode_net:
          ipv4_address: 10.3.0.11
      volumes:
          - .:/application
          - ./itbcode_docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
      ports:
       - "8089:80"

    mysql:
      image: mysql:5.7
      container_name: bralion-mysql
      working_dir: /application
      networks:
        itbcode_net:
          ipv4_address: 10.3.0.12
      volumes:
        - .:/application
        - ./var/mysql:/var/lib/mysql
      environment:
        - MYSQL_ROOT_PASSWORD=123
        - MYSQL_DATABASE=bralion
        - MYSQL_USER=bralion
        - MYSQL_PASSWORD=123
        - MYSQL_ALLOW_EMPTY_PASSWORD=true
      ports:
        - "8088:3306"

    phpmyadmin:
      image: phpmyadmin/phpmyadmin
      links:
        - mysql
      environment:
        PMA_HOST: mysql
        PMA_PORT: 3306
      ports:
        - '8080:80'


    php-fpm:
      build: itbcode_docker/php-fpm
      container_name: bralion-php-fpm
      working_dir: /application
      networks:
        itbcode_net:
          ipv4_address: 10.3.0.13
      volumes:
        - .:/application
        - ~/.ssh/:/root/.ssh/
        - ~/.bash_history:/root/.bash_history
        - ./itbcode_docker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini

    redis:
      image: redis:alpine
      container_name: sd-redis
更新1

我更新config add~/.composer并将phpmyadmin添加到itb_网络

version: "3.1"
services:

    webserver:
      image: nginx:alpine
      container_name: bralion-webserver
      working_dir: /application
      networks:
        itbcode_net:
          ipv4_address: 10.3.0.11
      volumes:
          - .:/application
          - ./itbcode_docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
      ports:
       - "8089:80"

    mysql:
      image: mysql:5.7
      container_name: bralion-mysql
      working_dir: /application
      networks:
        itbcode_net:
          ipv4_address: 10.3.0.12
      volumes:
        - .:/application
        - ./var/mysql:/var/lib/mysql
      environment:
        - MYSQL_ROOT_PASSWORD=123
        - MYSQL_DATABASE=bralion
        - MYSQL_USER=bralion
        - MYSQL_PASSWORD=123
        - MYSQL_ALLOW_EMPTY_PASSWORD=true
      ports:
        - "8088:3306"

    phpmyadmin:
      image: phpmyadmin/phpmyadmin
      networks:
          itbcode_net:
      links:
        - mysql
      environment:
        PMA_HOST: mysql
        PMA_PORT: 3306
      ports:
        - '8080:80'


    php-fpm:
      build: itbcode_docker/php-fpm
      container_name: bralion-php-fpm
      working_dir: /application
      networks:
        itbcode_net:
          ipv4_address: 10.3.0.13
      volumes:
        - .:/application
        - ~/.ssh/:/root/.ssh/
        - ~/.composer/:/root/.composer/
        - ~/.bash_history:/root/.bash_history
        - ./itbcode_docker/php-fpm/php-ini-overrides.ini:/etc/php/7.2/fpm/conf.d/99-overrides.ini

    redis:
      image: redis:alpine
      container_name: sd-redis
      networks:
          itbcode_net:

    elastic-search:
      image: willdurand/elk
      networks:
          itbcode_net:
      container_name: bralion-elastic
      ports:
          - 81:80
      volumes:
          - ./elk/logstash:/etc/logstash
          - ./elk/logstash/patterns:/opt/logstash/patterns

#    node:
#      build:
#        context: ./itbcode_docker/node
#      working_dir: /srv
#      volumes:
#        - ./:/srv/



networks:
  itbcode_net:
    driver: bridge
    ipam:
     config:
       - subnet: 10.3.0.0/16
webserver、mysql和php fpm位于网络itbcode_net上


phpmyadmin和redis不匹配,因此phpmyadmin无法找到该地址

问题在于这两个容器位于不同的网络中。phpmyadmin容器仅在默认网络中,因为您没有为其指定另一个网络,mysql容器仅在itbcode_net网络中。一旦您指定另一个网络,该容器将从默认网络中删除,除非您还添加-default。您需要将phpmyadmin添加到itbcode_net或将mysql添加到默认值,否则它们无法相互通信。

错误是什么?我添加了错误……最佳做法是什么?我只需要Web服务器的statc ip,其他容器不需要公共端口,ip-我需要创建网络吗?超出StackOverflow的范围,但拥有ip并不能使其公开评估。端口声明使其在主机上可见。