我正在尝试安装对接容器:Apache/PHP7 7/Mysql 5.7,通过docker-在Ubuntu16.04上构建。
问题是我没有从index.php (localhost:8080)获得数据库连接。如果我试图连接,它会说:“连接失败:连接被拒绝”。
Apachephp7dockerfile:https://github.com/nimmis/docker-apache-php7/blob/master/Dockerfile
这些文件夹是:
apache-php7 7(包括Dockerfile)
html (包括index.php)
mysql数据
docker-compose.yml:
version: '2'
services:
php:
build: apache_php7
container_name: apache_php7
ports:
- "8080:80"
- "443:443"
volumes:
- ./html:/var/www/html
links:
- db
db:
image: mysql:5.7
container_name: mysql_5_7
volumes:
- ./mysql:/var/lib/mysql
ports:
- "127.0.0.1:3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=test
- MYSQL_USER=admin
- MYSQL_PASSWORD=test
- MYSQL_DATABASE=databaseindex.php (php-代码段)
<?php
$servername = "127.0.0.1";
$username = "admin";
$password = "test";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?> 我搜索了类似的线程,并尝试使用PDO等,但是没有什么效果。
我可以通过终端手动登录mysql容器,命令为: docker -it bash,并通过"mysql -u root -p“-> passwort: test登录。
发布于 2017-10-11 13:18:44
已经解决了。首先,我通过以下方法获得正在运行的mysql容器的名称/id
docker ps然后我从命令中得到了一个ip地址
docker inspect <name of container> | grep IPAddress就像在这个截图里。
我还在我的docker-Compose.yml中修改了这一行:
volumes:
- /var/lib/mysql:/var/lib/mysql感谢奈杰伦和杰科里的回答。现在一切都正常了。
https://stackoverflow.com/questions/46687673
复制相似问题