Docker 部署 wordpress 并开启 https

发布于 2021-08-01  3,787 次阅读


这博客的技术和方式已经落后,如果你有这方面的需求,可以参考较新的一篇博客记录一次wordpress博客迁移

本博客使用的是以 docker 部署的 wordpress ,并开启了https,其中用到了两个 github 的开源 nginx 项目,做个记录,希望能帮助到后来人。
服务器用的是 centos ,故所有的命令行以 centos 为示例命令行。docker 的安装方式可参照官网帮助文档
本博客部署时使用到了 docker-compose 部署,但实际上不是必须项。

1.我们在安装 docker 之后,设置一个 docker 网络作为 nginx 的反代网络。

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 nginxnet

由此,设置一个 docker 网络名为 nginxnet。

2.部署 nginx 容器

docker run -d --restart=always --net nginxnet --name nginx-proxy --publish 80:80 --publish 443:443 --volume /etc/nginx/certs --volume /etc/nginx/vhost.d --volume /usr/share/nginx/html --volume /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
docker run --detach \
    --restart=always \
    --privileged=true \
    --net nginxnet \
    --name nginx-proxy \
    --publish 80:80 \
    --publish 443:443 \
    --volume certs:/etc/nginx/certs \
    --volume vhost:/etc/nginx/vhost.d \
    --volume html:/usr/share/nginx/html \
    --volume /var/run/docker.sock:/tmp/docker.sock:ro \
    nginxproxy/nginx-proxy

docker run --detach \
    --privileged=true \
    --restart=always \
    --net nginxnet \
    --name nginx-proxy-acme \
    --volumes-from nginx-proxy \
    --volume /var/run/docker.sock:/var/run/docker.sock:ro \
    --volume acme:/etc/acme.sh \
    --env "fantuanlian@gmail.com" \
    nginxproxy/acme-companion

开源项目地址:https://github.com/nginx-proxy/nginx-proxy

3.部署 letsencrypt-nginx-proxy 伴生容器

docker run -d --restart=always --name nginx-proxy-letsencrypt --net nginxnet --volumes-from nginx-proxy --volume /var/run/docker.sock:/var/run/docker.sock:ro --volume /etc/acme.sh --env "fantuanlian@gmail.com" jrcs/letsencrypt-nginx-proxy-companion

这个伴生容器是为了容器 https 的证书自动申请,使用时要将DEFAULT_EMAIL后面的值改为自己的邮箱。 开源项目地址:https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion

4.部署 wordpress 和 mysql

此处我部署时使用了 docker-compose
在一个文件夹中创立docker-compose.yml文件并编辑,并在此目录中使用docker-compose命令
https://ftlsama.ml/download/docker-compose.yml
或下载本文附录中的docker-compose.yml文件,并将数据库环境变量与域名填上自己的,复制到某目录下即可使用,文件上传可以使用FlashFXP,连接类型为 SFTP over SSH
由此,在命令行中打开该目录运行以下代码即可

docker-compose up

5.设置 docker 服务自启动与 docker 容器服务自启动

systemctl enable docker

自启动 docker 服务

docker update --restart=always nginx-proxy nginx-proxy-letsencrypt wordpress mysql:5.7

自启动 nginx mysql 等服务

至此,即使用 docker 部署了一个属于自己的 wordpress 。

最后更新于 2024-01-04