本文最后更新于179 天前,其中的信息可能已经过时,如有错误请发送邮件到pby_while@163.com
容器化部署WordPress(docker-compose)
环境准备:
- Anolis OS release 8.2
- docker
- WordPress镜像
- MySQL:8.0镜像
1、安装docker
## 安装yum-utils工具
[root@yun ~]# yum install yum-utils -y
## 安装docker.repo
[root@yun ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
## 安装docker-ce
[root@yun ~]# yum install docker-ce -y
##配置镜像加速器
[root@yun ~]# sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run"
],
"data-root": "/etc/docker"
}
EOF
## 启动docker
[root@yun ~]# systemctl start docker && systemctl enable docker
## 查看docker版本
[root@yun ~]# docker --version
2、安装对应的docker-compose工具
github下载:https://github.com/docker/compose/releases

## 下载docker-compos
方法一:直接下载
[root@yun ~]# wget https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-linux-x86_64
方法二:预先下载好,直接上传 docker-compose 到服务器
[root@yun ~]# ls
docker-compose-linux-x86_64
## 配置docker-compose
[root@yun ~]# chmod +x /usr/local/bin/docker-compose
[root@yun ~]# mv docker-compose-linux-x86_64 docker-compose
[root@yun ~]# mv docker-compose /usr/local/bin/
## 验证docker-compose
[root@yun ~]# docker-compose --version
Docker Compose version v2.27.1
3、编写dockerfile
## 创建目录用以持久化存储数据
[root@yun ~]# cd
[root@yun ~]# mkdir mysql
[root@yun ~]# mkdir -p wordpress/html
[root@yun ~]# mkdir -p nginx/html
[root@yun ~]# vim docker-compose.yaml
## 创建dockerfile文件
#version: "3.9"
# 所有服务共用同一个自定义网段 net
networks:
default:
driver: bridge
name: net
services:
# MySQL
mysql:
image: mysql:8.0
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: [ 你的密码 ]
volumes:
- /root/mysql:/var/lib/mysql
networks:
- net
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 20s
retries: 10
# WordPress
wordpress:
image: wordpress:latest
container_name: wordpress
restart: always
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: [ 你的数据库账户 ]
WORDPRESS_DB_PASSWORD: [ 你的数据库密码 ]
volumes:
- /root/wordpress/html:/var/www/html
ports:
- "80:80"
depends_on:
mysql:
condition: service_healthy
networks:
- net
4、启动docker-compose
## yaml文件名字为docker-compose直接执行下面的命令
[root@yun ~]# docker-compose up -d
## 名字为其他的需要加上参数 -f
[root@yun ~]# docker-compose -f xxx.yaml up -d
5、修改配置文件
## 进入数据库创建wp_db库
[root@yun ~]# docker exec -it mysql mysql -u[数据库账号] -p[数据库密码]
mysql> CREATE DATABASE wp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
## 修改wp-config.php
[root@yun ~]# cd /root/wordpress/html/
[root@yun html]# vim wp-config.php ## 主要是修改下面几行
... ...
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wp_db' ); ## 刚刚我们上面创建的库名
/** Database username */
define( 'DB_USER', 'root' ); ## 数据库用户名
/** Database password */
define( 'DB_PASSWORD', 'password' ); ## 数据库密码
/** Database hostname */
define( 'DB_HOST', 'mysql' ); ## 因为在docker的容器网段下,所以只需要填写你创建的数据库容器名字即可
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
... ...
## 重启wordpress容器
[root@yun html]# docker-compose restart wordpress
6、访问wordpress
填写信息,验证成功即可。





