使用 Compose 部署 WordPress
查看版本
[root@host1 ~]# docker compose version
Docker Compose version v2.39.2
1.定义 Compose 项目
1.创建一个空的项目目录
[root@host1 ~]# mkdir mywordpress
2.将当前工作目录切换到该项目目录
[root@host1 ~]# cd mywordpress
3.在该项目目录下创建并编辑 compose.yaml 文件,在该文件中加入以下内容
[root@host1 mywordpress]# vi compose.yaml
[root@host1 mywordpress]# cat compose.yaml
services:db:# 使用支持多架构(AMD64/ARM64)的MariaDB镜像(官方10.6版本默认支持多架构)image: mariadb:10.6command: --default-authentication-plugin=mysql_native_password # 修正拼写错误(nysql→mysql,移除多余空格)volumes:- db_data:/var/lib/mysql # 数据持久化卷restart: alwaysenvironment:- MYSQL_ROOT_PASSWORD=somewordpress # 根密码- MYSQL_DATABASE=wordpress # 数据库名(修正变量名:MYSQL DATABASE→MYSQL_DATABASE)- MYSQL_USER=wordpress # 数据库用户- MYSQL_PASSWORD=wordpress # 数据库密码expose:- 3306 # 内部暴露MySQL端口- 33060 # MySQL X协议端口wordpress:image: wordpress:latest # WordPress官方镜像默认支持多架构volumes:- wp_data:/var/www/html # WordPress数据卷ports:- "80:80" # 映射主机80端口到容器restart: alwaysenvironment:- WORDPRESS_DB_HOST=db # 数据库主机(关联db服务)- WORDPRESS_DB_USER=wordpress # 数据库用户(修正变量名:WORDPRESS DB USER→WORDPRESS_DB_USER)- WORDPRESS_DB_PASSWORD=wordpress # 数据库密码(修正变量名:WORDPRESS DB PASSWORD→WORDPRESS_DB_PASSWORD)- WORDPRESS_DB_NAME=wordpress # 数据库名(修正变量名:WORDPRESS DB NAME→WORDPRESS_DB_NAME)depends_on:- db # 确保db服务启动后再启动wordpress# 定义持久化卷(修正语法:分号→冒号,空格→下划线)
volumes:db_data: # 数据库数据卷wp_data: # WordPress数据卷
2.启动 Compose 应用程序
1.拉取所需镜像
[root@host1 mywordpress]# docker compose up -d
[+] Running 34/34✔ db Pulled 67.9s ✔ 60d98d907669 Already exists 0.0s ✔ 99d06c66f898 Pull complete 40.5s ✔ 06aef2ac3e47 Pull complete 45.6s ✔ 9a72f70121d1 Pull complete 45.6s ✔ fb759559ec7b Pull complete 45.6s ✔ e0a6013411a6 Pull complete 58.5s ✔ 9ed8599f8688 Pull complete 58.5s ✔ 03dc8529cdb2 Pull complete 58.6s ✔ wordpress Pulled 55.1s ✔ ce1261c6d567 Already exists 0.0s ✔ 48ebd04f4983 Pull complete 1.7s ✔ 70bb6b41f165 Pull complete 31.0s ✔ 945024922144 Pull complete 31.0s ✔ 2e432d6184b2 Pull complete 32.0s ✔ d4f032b51ed9 Pull complete 32.1s ✔ c4f07164d4bf Pull complete 32.1s ✔ 7ba7adab300a Pull complete 32.2s ✔ 08a8f3c4034a Pull complete 32.3s ✔ aecd45709115 Pull complete 33.6s ✔ 80da6eb38538 Pull complete 33.6s ✔ 5a7c38055062 Pull complete 33.6s ✔ 9dcc75070870 Pull complete 33.6s ✔ 1f8d884fef54 Pull complete 33.6s ✔ 4f4fb700ef54 Pull complete 33.7s ✔ 76e7319b3f26 Pull complete 36.9s ✔ 0d5f6489a7e1 Pull complete 39.6s ✔ e2fc6b9d8c26 Pull complete 39.7s ✔ ec3ac38d4884 Pull complete 39.7s ✔ a37f8c73e1ff Pull complete 39.7s ✔ a2c5d277e8a4 Pull complete 45.7s ✔ 94f8d528b6bd Pull complete 45.8s ✔ eecb8a58b0a6 Pull complete 45.8s ✔ 50b0f7808d2a Pull complete 45.8s
[+] Running 5/5✔ Network mywordpress_default Created 0.1s ✔ Volume "mywordpress_wp_data" Created 0.0s ✔ Volume "mywordpress_db_data" Created 0.0s ✔ Container mywordpress-db-1 Started 1.3s ✔ Container mywordpress-wordpress-1 Started 1.5s
2.查看正在运行的容器
[root@host1 mywordpress]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf686ec2b69b wordpress:latest "docker-entrypoint.s…" 14 seconds ago Up 12 seconds 0.0.0.0:80->80/tcp, [::]:80->80/tcp mywordpress-wordpress-1
a707bad01058 mariadb:10.6 "docker-entrypoint.s…" 14 seconds ago Up 13 seconds 3306/tcp, 33060/tcp mywordpress-db-1
0dbf7ea2178e registry "/entrypoint.sh /etc…" 6 days ago Up About an hour 0.0.0.0:5000->5000/tcp, [::]:5000->5000/tcp myregistry
3.查看当前容器网络
[root@host1 mywordpress]# docker network ls
NETWORK ID NAME DRIVER SCOPE
59a858d2efe2 bridge bridge local
4251d9be020b host host local
38a278c90b9a mywordpress_default bridge local
ba96ad98e029 none null local
4.查看当前卷
[root@host1 mywordpress]# docker volume ls
DRIVER VOLUME NAME
local myvol
local mywordpress_db_data
local mywordpress_wp_data
3.在 Web 浏览器中访问 WordPress 应用程序
至此就可以正常使用 WordPress 了
4.停止和清理 Compose 应用程序
删除容器和默认网络
[root@host1 mywordpress]# docker compose down --volumes
[+] Running 5/5✔ Container mywordpress-wordpress-1 Removed 3.3s ✔ Container mywordpress-db-1 Removed 0.5s ✔ Volume mywordpress_wp_data Removed 0.1s ✔ Volume mywordpress_db_data Removed 0.2s ✔ Network mywordpress_default Removed 0.2s