前面我们已经搭建好了php+mysql+nginx环境, 我们日常管理mysql一般是使用navicate for mysql 或phpmyadmin,显然这里是不能用navicate for mysql 了,phpmyadmin在docker也是有镜像的,我们也只需要按照以前的做法把phpmyadmin加入docker-compose.yml;这里首先说下我遇到的问题,刚开始我这样写的:
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
ports:
- "8181:80"
environment:
MYSQL_USER: root
MYSQL_PASSWORD: 123456
MYSQL_ROOT_PASSWORD: 123456
networks:
- code-network
然而提示错误说: unknown host ‘db', 看错误就知道传入了错误的host,应该是docker默认的host吧,但根据前面的mysql的environment,没有MYSQL_HOST,我就查看phpmyadmin,https://hub.docker.com/r/phpmyadmin/phpmyadmin/,有这样几个environment:
PMA_ARBITRARY- when set to 1 connection to the arbitrary server will be allowedPMA_HOST- define address/host name of the MySQL serverPMA_VERBOSE- define verbose name of the MySQL serverPMA_PORT- define port of the MySQL serverPMA_HOSTS- define comma separated list of address/host names of the MySQL serversPMA_VERBOSES- define comma separated list of verbose names of the MySQL serversPMA_USERandPMA_PASSWORD- define username to use for config authentication methodPMA_ABSOLUTE_URI- define user-facing URI
其中有一个是PAM_HOST,然后我加入这个环境变量,并赋值为localhost, 结果提示unknown host ‘localhost',然后就bing,bing,bing,终于找到说需要传入mysql image的 image 名称, 所以根据前面的配置,我们需要传入mysql,所以完整的docker-compose.yml是这样的:
version: "2"
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/default.conf
networks:
- code-network
mysql:
image: mysql
volumes:
- ./dbdata:/var/lib/mysql
ports:
- "3306:3306"
environment:
MYSQL_USER: root
MYSQL_PASSWORD: 123456
MYSQL_ROOT_PASSWORD: 123456
networks:
- code-network
php:
build: ./docker/php/
volumes:
- ./code:/code
networks:
- code-network
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
ports:
- "8181:80"
environment:
MYSQL_USER: root
MYSQL_PASSWORD: 123456
MYSQL_ROOT_PASSWORD: 123456
PMA_HOST: mysql
networks:
- code-network
networks:
code-network:
driver: bridge
本文介绍如何在Docker环境中正确配置PHPMyAdmin以连接到MySQL数据库服务。通过解决遇到的具体问题,例如未知主机错误,文章详细展示了如何修改docker-compose.yml文件来确保PHPMyAdmin能够正常运行。
3290

被折叠的 条评论
为什么被折叠?



