[英]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.