重新把博客备案后迁移进了国内服务器,于是通过Docker 进行重新安装,方便自己后续回顾使用
WordPress 可以采用 UpdraftPlus 进行备份后下载备份文件,再重新在新站点上传备份文件恢复即可,在此就不在叙述了,需要的可以通过搜索引擎获取该插件使用方式
一、移除当前系统 Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
二、安装依赖项
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
三、添加信任公钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
四、添加镜像仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
五、开始安装
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
六、配置Docker 镜像加速, 加速器地址可以通过阿里云容器镜像控制台 左侧菜单的镜像工具 > 镜像加速器 获取
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["您的加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
七、编写 WordPress Docker Compose 文件 wordpress.yml
version: "3.9"
services:
database:
image: mysql:5.7
volumes:
- database:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: MySQL Root 密码
MYSQL_DATABASE: MySQL 数据库名称
MYSQL_USER: MySQL 用户名
MYSQL_PASSWORD: MySQL 用户密码
wordpress:
depends_on:
- database
image: wordpress:5.8.2
volumes:
- web:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: database:3306
WORDPRESS_DB_USER: MySQL 用户名
WORDPRESS_DB_PASSWORD: MySQL 用户密码
WORDPRESS_DB_NAME: MySQL 数据库名称
volumes:
database:
web:
八、通过 Stack 进行服务编排
sudo docker stack deploy -c wordpress.yml wordpress
九、安装 Nginx 并配置 SSL
首先安装 nginx 和 certbot(Let’s Encrypt 证书配置工具)
sudo apt install nginx
sudo apt install certbot python3-certbot-nginx
新添Nginx 配置
server {
server_name 域名地址;
listen 80;
listen [::]:80;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 100m;
}
}
配置SSL,Certbot 会自动获取 SSL 证书并处理配置文件
sudo certbot --nginx //获取证书,并修改配置
sudo certbot renew --dry-run //自动检查证书
sudo nginx -s reload //nginx从新加载证书
访问域名地址即可