Mr.*_*Moe 6 mysql docker docker-compose
我想开始使用docker并使用nginx容器,PHP-FPM容器和MySQL容器创建一个简单的容器环境.
虽然nginx和PHP-FPM容器之间的链接运行良好,但我似乎无法将PHP应用程序服务器与数据库服务器链接起来.
我使用docker-compose来最小化手动终端工作.我的docker-compose.yml看起来像这样:
web:
image: tutorial/nginx
ports:
- "8080:80"
volumes:
- ./src:/var/www
- ./src/vhost.conf:/etc/nginx/sites-enabled/vhost.conf
links:
- php
php:
image: nmcteam/php56
volumes:
- ./src/php-fpm.conf:/etc/php5/fpm/php-fpm.conf
- ./src:/var/www
links:
- db
db:
image: sameersbn/mysql
volumes:
- /var/lib/mysql
environment:
- DB_NAME=demoDb
- DB_USER=demoUser
- DB_PASS=demoPass
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下语句连接到DB:
$db = new \PDO('mysql:host=db;dbname=demoName', 'demoUser', 'demoPass');
Run Code Online (Sandbox Code Playgroud)
MySQL容器本身正在工作,因为我可以连接到容器bash并使用MySQL CLI:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| demoDb |
| mysql |
| performance_schema |
+--------------------+
Run Code Online (Sandbox Code Playgroud)
我只是得到一个500错误,并找不到为什么这不起作用的原因.任何对我可能错过的帮助或建议都不胜感激.
这不是 Docker 问题,而是代码问题:
你有:$db = new \PDO('mysql:host=db;dbname=demoName', 'demoUser', 'demoPass');
它应该是:$db = new \PDO('mysql:host=db;port=3306;dbname=demoDb', 'demoUser', 'demoPass');
| 归档时间: |
|
| 查看次数: |
14474 次 |
| 最近记录: |