以下是使用 Docker 官方镜像快速起一个 PHP + MySQL 环境的步骤:
1. 创建 docker-compose.yml
在项目目录下创建一个 docker-compose.yml 文件,内容如下:
version: '3.8'
services:
web:
image: php:apache
container_name: php_web
ports:
- "8080:80"
volumes:
- ./html:/var/www/html
depends_on:
- db
db:
image: mysql:latest
container_name: mysql_db
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: mydb
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
2. 创建项目文件夹和文件
在当前目录创建一个 html 文件夹,并将 PHP 项目文件放入其中。
例如,在 html 文件夹中创建一个简单的测试文件 index.php:
<?php
$servername = "db";
$username = "user";
$password = "password";
$dbname = "mydb";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
3. 启动容器
在 docker-compose.yml 文件所在目录运行以下命令:
docker-compose up -d
4. 访问应用
打开浏览器访问 http://localhost:8080,你应该可以看到 PHP 的输出。
数据库服务运行在 localhost:3306,可以使用任何 MySQL 客户端连接,用户名、密码和数据库名称为 user、password 和 mydb。
说明
web 服务:基于官方 php:apache 镜像,提供 PHP 和 Apache 环境。
db 服务:基于官方 mysql 镜像,提供 MySQL 数据库服务。
volumes:用于持久化数据库数据以及挂载本地 PHP 项目代码。
如需更多配置,修改 docker-compose.yml 即可满足需求。
1. 创建 docker-compose.yml
在项目目录下创建一个 docker-compose.yml 文件,内容如下:
version: '3.8'
services:
web:
image: php:apache
container_name: php_web
ports:
- "8080:80"
volumes:
- ./html:/var/www/html
depends_on:
- db
db:
image: mysql:latest
container_name: mysql_db
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: mydb
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
2. 创建项目文件夹和文件
在当前目录创建一个 html 文件夹,并将 PHP 项目文件放入其中。
例如,在 html 文件夹中创建一个简单的测试文件 index.php:
<?php
$servername = "db";
$username = "user";
$password = "password";
$dbname = "mydb";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
3. 启动容器
在 docker-compose.yml 文件所在目录运行以下命令:
docker-compose up -d
4. 访问应用
打开浏览器访问 http://localhost:8080,你应该可以看到 PHP 的输出。
数据库服务运行在 localhost:3306,可以使用任何 MySQL 客户端连接,用户名、密码和数据库名称为 user、password 和 mydb。
说明
web 服务:基于官方 php:apache 镜像,提供 PHP 和 Apache 环境。
db 服务:基于官方 mysql 镜像,提供 MySQL 数据库服务。
volumes:用于持久化数据库数据以及挂载本地 PHP 项目代码。
如需更多配置,修改 docker-compose.yml 即可满足需求。