使用-Compose-部署-WordPress
目录
使用 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.6
command: --default-authentication-plugin=mysql_native_password # 修正拼写错误(nysql→mysql,移除多余空格)
volumes:
- db_data:/var/lib/mysql # 数据持久化卷
restart: always
environment:
- 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: always
environment:
- 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