我试图在Ubuntu 16.04上通过docker-compose up设置docker-container:Apache / PHP7 / Mysql 5.7。
问题是我没有从index.php(localhost:8080)获得数据库连接。 如果我尝试连接它说:"连接失败:连接被拒绝"。
apache-php7 dockerfile:https://github.com/nimmis/docker-apache-php7/blob/master/Dockerfile
文件夹是:
apache-php7(包括Dockerfile)
html(包括index.php)
mysql(mysql数据)
搬运工-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=database
index.php(php-snippet)
<?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";
?>
我搜索了类似的线程,并尝试使用PHP-PDO等 - 没有任何工作。
我可以使用以下命令通过终端手动登录mysql容器: docker exec -it bash, 并通过&#34; mysql -u root -p&#34;登录 - &GT;密码:测试。
答案 0 :(得分:0)
它解决了。 首先,我通过
获取正在运行的mysql容器的名称/ IDpublic void createArchive(ArrayList<String> worklogIssue) throws IOException {
String id = null;
int i = 0;
JSONArray json = new JSONArray(worklogIssue);
for (i = 0; i < worklogIssue.size(); i++){
JSONObject json_obj = json.getJSONObject(i);
id = json_obj.getString("id");
}
}
然后我从命令
获得了一个ip-addressdocker ps
就像在这个截图中一样。
我还在docker-compose.yml中修改了这一行:
docker inspect <name of container> | grep IPAddress
感谢Nigel Ren,感谢jcorry的回答。现在一切正常。