-
php要連接docker中運行的mysql是不能用localhost, 127.0.0.1來連接的,因為每個docker運行容器的localhost 127.0.0.1都是自己容器本身,不是mysql容器,需要修改成母機 IP,或者是mysql容器名稱
-
比如有如下的docker-compose.yml
version: '3'
services:
mysql:
# build: ./mysql
image: daocloud.io/library/mysql:5.7.20
volumes:
- ./mysql/conf:/etc/mysql
- ./mysql/data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
ports:
- "3306:3306"
networks:
- lnmp
php54:
build: ./php54
# # 使用宿主:容器 (HOST:CONTAINER)格式或者僅僅指定容器的端口(宿主將會隨機選擇端口)都可以
# # 開放9000端口
ports:
- "9005:9000"
# # 此處實現文件夾代碼目錄映射
volumes:
- ../:/data
- ./php54/hosts:/etc/hosts
- ./php54/etc/php/php.ini:/usr/local/etc/php/php.ini
- ./php54/etc/php-fpm.conf:/usr/local/etc/php-fpm.conf
links:
- mysql
privileged: true
networks:
- lnmp
nginx:
build: ./nginx
# 此處實現文件夾代碼目錄映射
volumes:
- ../:/data
- ./php54/hosts:/etc/hosts
links:
- php54:php54
privileged: true
ports:
- "80:80"
networks:
- lnmp
networks:
lnmp:
driver: bridge
- php中連接的 mysql 地址就是 mysql就可以連接了,不用 localhost 或127.0.0.1