基于 Docker 搭建 WordPress 并支持 HTTPS

在我的博客上查看

基于 Docker 搭建 WordPress 并支持 HTTPS

安装 docker 与 docker compose

Docker 安装与基本用法

安装 docker compose

apt -y update
apt -y install docker-compose

拉取 mysql, wordpress 镜像

(可跳过, 启动时会自动下载)

docker pull mysql
docker pull wordpress

启动容器

编写 docker-compose.yml

注意参数前必须空一格

version: '3.3'
services:
  db:
     image: mysql:latest
     container_name: "wordpress_mysql"
     ports:
       - "3307:3306"
     volumes:
       - ~/wordpress/mysql:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: 123456
       MYSQL_DATABASE: wordpress
       MYSQL_USER: admin
       MYSQL_PASSWORD: 123456
  wordpress:
     depends_on:
       - db
     image: wordpress:latest
     container_name: "wordpress"
     ports:
       - "80:80" 
       - "443:443"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: admin
       WORDPRESS_DB_PASSWORD: 123456
       WORDPRESS_DB_NAME: wordpress
       WORDPRESS_WPLANG: zh-CN
     volumes:
       - ~/wordpress/html:/var/www/html

运行容器

docker-compose up -d

服务器防火墙开放 80 和 443 端口, 浏览器输入域名即可访问 WordPress

部署 SSL 证书

进入容器

docker exec -it wordpress bash

加载 Apache SSL 模块

a2enmod ssl

第一次加载, 需要重启 Apache 服务

service apache2 restart

此时应该自动退出容器

重启容器

docker restart wordpress

docker ps -a 可以查看容器的运行状况, 如果 STATUS 是 Up xxx seconds 表示启动成功, 已运行了 xxx 秒

基于 Docker 搭建 WordPress 并支持 HTTPS_第1张图片

将下载好的 SSL 证书传入服务器, .pem文件命名为 ssl-cert-snakeoil.pem, .key文件命名为 ssl-cert-snakeoil.key.

然后 copy 到容器的相应位置

docker cp ssl-cert-snakeoil.pem wordpress:/etc/ssl/certs/ssl-cert-snakeoil.pem
docker cp ssl-cert-snakeoil.key wordpress:/etc/ssl/private/ssl-cert-snakeoil.key

进入容器, 链接文件目录

docker exec -it wordpress bash
ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf

退出容器, 然后重启容器

docker restart wordpress

访问 WordPress 后台, 在设置中更改站点地址为 https://xxx.xxx

注意, 更改之前请尝试并确认可以通过 https 访问, 如果访问失败, 可以尝试清除浏览器缓存/强制刷新/换个浏览器

基于 Docker 搭建 WordPress 并支持 HTTPS_第2张图片

此外, 可以强制 http 请求转到 https, 具体可见参考链接

参考链接

https://www.jianshu.com/p/e8ae8bb1ad0a

你可能感兴趣的:(docker,docker,https,容器)