繁体   English   中英

Mysql,PHPmyadmin和Apache的Docker错误

[英]Docker Error with Mysql, PHPmyadmin and Apache

我有一个连接到SQL网站的php网站。 我创建了一个docker compose when when,Php站点未连接到mysql。 我的docker-config.yml:

    version: '3'

services:

  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: AspireAdmin

  webserver:
    image: php:apache
    volumes:
      - ./src:/var/www/html
    ports:
      - 24:80

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_PORT: 3306
      PMA_HOST: db
      PMA_USER: root
      PMA_PASSWORD: AspireAdmin
    ports:
    - "8004:80"
    restart: always
    depends_on: 
    - db

它无法连接,因为您的基本设置需要一些调整。您的MYSQL需要他的基本设置才能正确启动。 然后,您需要将网络模式设置为桥接(这将使您的容器通过container_name连接到自身)。 这就是我在此docker-compose文件中所做的事情:

version: "3"
services:
  db:
    image: mysql:5.7
    restart: always
    container_name: db
    environment:
      - MYSQL_ROOT_PASSWORD=rootpasswd
      - MYSQL_DATABASE=phpmyadmin
      - MYSQL_USER=user
      - MYSQL_PASSWORD=userpasswd
    networks:
      - db
    command: --default-authentication-plugin=mysql_native_password

  webserver:
    image: php:apache
    volumes:
      - ./src:/var/www/html
    ports:
      - 24:80

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:4.7
    restart: always
    container_name: phpmyadmin
    ports:
      - 9090:80
    networks:
      - external-net
      - db
    environment:
      PMA_HOST: db
    depends_on:
      - db

networks:
  external-net:
    external:
      name: external-net
  db:
    driver: bridge

我已经创建了两个网络,一个用于外部访问,另一个用于数据库访问,因此,如果您的Web服务器需要与它们通信,则只需将其添加到撰写文件中。 部署后,您可以使用root:rootpasswd访问phpmyadmin。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM