在Docker中使用Docker Compose部署WordPress应用是一个常见且易于管理的方案。以下是一个基本的docker-compose.yml
文件示例,用于配置和管理包含WordPress、MySQL数据库以及可能的Nginx服务器作为反向代理的环境:
version: '3.8'
services:
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_mysql_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: your_wordpress_password
volumes:
- db_data:/var/lib/mysql
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: your_wordpress_password
volumes:
- wp_content:/var/www/html/wp-content
volumes:
db_data:
wp_content:
# 若需要添加Nginx服务以提供生产级负载均衡和静态文件处理
# 可以添加如下服务:
#
# nginx:
# image: nginx:latest
# restart: always
# ports:
# - "80:80"
# volumes:
# - ./nginx.conf:/etc/nginx/conf.d/default.conf
# - wp_content:/var/www/html/wp-content
在这个例子中:
db
服务代表了MySQL数据库,设置了一些必要的环境变量来初始化数据库。wordpress
服务基于官方的WordPress镜像,并通过depends_on
确保在启动WordPress之前先启动数据库服务。- 使用卷挂载(例如
db_data
)来持久化数据库数据。 - WordPress服务通过环境变量连接到数据库,并将wp-content目录映射为一个独立的数据卷以保持内容的持久性。
若要增加Nginx服务,则可以按照注释部分添加相应的配置,包括自定义的Nginx配置文件(如nginx.conf
),并将其挂载到容器内部的正确位置。
要启动这个Docker Compose环境,请在包含docker-compose.yml
文件的目录下执行以下命令:
docker-compose up -d
这将会拉取所需的镜像(如果尚未存在),构建容器并启动所有服务。之后,您可以通过访问宿主机的8000端口来浏览WordPress网站。在实际生产环境中,可能还需要根据需求调整Nginx配置以提高性能和安全性。