利用docker/docker-comose工具完成至少3种不同动态语言(PHP/Java/Python/Go/Perl/Nodejs...)运行环境的搭建,并实现从mysql/mongodb等数据库中读取数据到Web页面中显示
时间: 2023-09-16 13:12:50 浏览: 86
使用docker来构建交互式数据开发平台
3星 · 编辑精心推荐
好的,我了解了你的问题。下面是我对这个问题的回答:
首先,我们安装 Docker 和 Docker Compose 工具。里就不详细介绍了,可以参考方文档进行安装。
接下来,我们可以使用 Docker Compose 编写一个 docker-compose.yml,来定义我们的应用程序和服务。
下面是一个示例 docker-compose.yml 文件,它定义了一个 PHP、MySQL 和 Nginx 服务:
```
version: '3'
services:
php:
build: ./php
volumes:
- ./php:/var/www/html
depends_on - db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test
volumes:
- ./mysql:/var/lib/mysql
web:
image: nginx
volumes:
- ./nginx:/etc/nginx/conf.d
- ./php:/var/www/html
ports:
- "80:80"
depends_on:
- php
```
在上面的配置中,我们定义了三个服务,即 PHP、MySQL 和 Nginx。其中,PHP 服务使用了一个名为 ./php 的 Docker 镜像,MySQL 服务使用了官方的 MySQL 5.7 镜像,Nginx 服务使用了官方的 Nginx 镜像。
接下来,我们可以在 ./php 目录下创建一个 index.php 文件,来实现从 MySQL 数据库中读取数据并在网页中显示。下面是一个示例代码:
```php
<?php
$host = 'db';
$user = 'root';
$password = 'root';
$dbname = 'test';
$conn = new mysqli($host, $user, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>ID</th><th>Name</th></tr>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row["id"] . "</td><td>" . $row["name"] . "</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
```
最后,我们可以使用 docker-compose 命令来启动这个应用程序:
```
docker-compose up -d
```
这个命令会在后台启动所有的服务,并将它们连接起来。在浏览器中访问 http://localhost,就可以看到从 MySQL 数据库中读取的数据了。
阅读全文