使用docker-compose部署wordpress
环境:
Ubuntu22.04-腾讯云、Docker、Docker-compose、mysql:5.7、wordpress:latest
注:如果以非root身份登录,命令前加:sudo
或者:sudo -i
实验演示不涉及理论
一、安装docker
1、更新ubbuntu
apt update && apt upgrade && apt full-upgrade -y
2、添加docker库、https协议
apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release -y
3、添加 Docker 的官方 GPG 密钥
curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-ce-archive-keyring.gpg
#添加docker源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-ce-archive-keyring.gpg] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu impish stable" | sudo tee /etc/apt/sources.list.d/docker-ce.list > /dev/null
# 再次更新安装源
apt update
4、安装docker
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
#重启系统,如果升级了kernel,建议重启系统
reboot
上面使用腾讯云的服务器,安装后是20版本,如果要使用最新版本,请使用docker官方源,
参考:https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/
5、安装docker-compose
apt install python3-pip
pip3 install --upgrade pip
#默认云服务器已经安装,可直接运行下面命令安装docker-compose
pip3 install docker-compose
6、查看版本:
docker version
docker-compose version
7、配置国内的加速器,可选。
vim /etc/docker/daemon.json
# 添加以下内容
{
"registry-mirrors": ["https://yxzrazem.mirror.aliyuncs.com"]
}
#保存退出
#重启服务
#测试了几个加速器,阿里云这个有效
systemctl daemon-reload
systemctl restart docker
二、部署wordPress
1、创建docker-compose.yml文件
注意:修改相应的用户名和密码
version: '3'
networks:
mynetwork:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.18.0.0/24
gateway: 172.18.0.1
services:
db:
image: mysql:5.7
container_name: mysql57
restart: always
environment:
MYSQL_ROOT_PASSWORD: yourpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
volumes:
- db_data:/var/lib/mysql
networks:
mynetwork:
ipv4_address: 172.18.0.10
wordpress:
depends_on:
- db
image: wordpress:latest
container_name: wordpress
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
networks:
mynetwork:
ipv4_address: 172.18.0.11
ports:
- 80:80
discuz:
depends_on:
- db
image: tencentci/discuz
container_name: discuz
restart: always
environment:
DISCUZ_DB_HOST: db:3306
volumes:
- discuz_data:/var/www/html
networks:
mynetwork:
ipv4_address: 172.18.0.12
ports:
- 80:80
volumes:
db_data:
wp_data:
discuz_data:
2、运行上面文件
docker-compose up -d
上面脚本使用卷标的方式数据持久化,简洁,但映射的目录不好找
# 查看卷标
docker volume ls
#查看具体的volume对应的真实地址
docker volume inspect 上面看到的某个卷标
三、初始化WordPress
1、打开浏览器,输入服务器网址
2、选择“中文”
四、初始化Discuz
注意事项:
数据库地址要填容器的地址。可以通过:
docker inspect 容器id查看
数据库名:默认即可
数据库管理员:root
进入到管理中心后首页会提示删除一些安装目录,这里我们做的映射,在主机删除就可能
持久化目标在:/var/lib/docker/volumes/root_discuz_data