【发布时间】:2018-08-15 05:14:41
【问题描述】:
似乎是一个常见问题,但在不同的上下文中,但我在使用 Docker 时连接到我的本地主机数据库时遇到问题。
如果我使用docker inspect 检查 mysql 容器并找到 IP 地址并将其用作数据库主机作为 CMS 的一部分,它运行良好...唯一的问题是 mysql 容器 IP 地址更改(每次docker-compose up 并且如果我更改 wifi 网络)理想情况下我想使用 'localhost' 或 '127.0.0.1' 但由于某种原因这会导致 SQLSTATE[HY000] [2002] Connection refused 错误。
如何在 CMS 应用程序中使用“localhost”或“127.0.0.1”作为数据库主机名,这样我就不必在容器 IP 地址更改时不断更改它?
这是我的 docker-compose.yml 文件:
version: "3"
services:
webserver:
build:
context: ./bin/webserver
restart: 'always'
ports:
- "80:80"
- "443:443"
links:
- mysql
volumes:
- ${DOCUMENT_ROOT-./www}:/var/www/html
- ${PHP_INI-./config/php/php.ini}:/usr/local/etc/php/php.ini
- ${VHOSTS_DIR-./config/vhosts}:/etc/apache2/sites-enabled
- ${LOG_DIR-./logs/apache2}:/var/log/apache2
networks:
mynet:
aliases:
- john.dev
mysql:
image: 'mysql:5.7'
restart: 'always'
ports:
- "3306:3306"
volumes:
- ${MYSQL_DATA_DIR-./data/mysql}:/var/lib/mysql
- ${MYSQL_LOG_DIR-./logs/mysql}:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: example
networks:
- mynet
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mysql
environment:
PMA_HOST: mysql
PMA_PORT: 3306
ports:
- '8080:80'
volumes:
- /sessions
networks:
- mynet
networks:
mynet:
【问题讨论】:
标签: docker