1 服务器环境搭建

本次选择 CentOS 操作系统

1.1 安装 Docker

使用 root 权限更新 yum

yum -y update

安装需要的软件包,yum-util 提供 yum-config-manager 功能,另外两个是 devicemapper 驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

设置 yum 源(选择其中一个,国内推荐阿里的)

yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

查看所有仓库中所有 Docker 版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

比如我的查询结果如下:

docker-ce.x86_64  3:23.0.1-1.el7  docker-ce-stable

使用 yum install docker-ce-版本号 安装 Docker(期间会有 2 次确认,输入 y 回车确认)

yum install docker-ce-23.0.1

启动 Docker 并设置开机自启

systemctl start docker
systemctl enable docker

检查是否安装成功

docker version

配置国内镜像源阿里镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://zriwtgsj.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.2 安装 Portainer(可选)

docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

2 安装 WordPress & MySQL & Nginx Proxy Manager

其中 my-secret-pw 是 root 用户的密码,请自行修改

docker network create blog

docker run --name blogdb --net blog -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 13306:3306 -d mysql

docker run --name blogweb --net blog -p 8080:80 -v /opt/blog/wordpress:/var/www/html -d wordpress

docker run --name blogproxy --net blog -p 80:80 -p 443:443 -p 10081:81 -v /opt/blog/nginxui/data:/data -v /opt/blog/nginxui/letsencrypt:/etc/letsencrypt -d jc21/nginx-proxy-manager

Nginx Proxy Manager 默认登录账户:admin@example.com, 密码:changeme

若无法登录管理员后台,编辑 wp-config.php。(注:添加在 if ( !defined('ABSPATH') ) 代码之前才能生效)

/**强制使用SSL/HTTPS访问后台以及登录**/
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
/**请求标头告知**/
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) 
&& $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { 
$_SERVER['HTTPS'] = 'on'; 
} 

留下评论