【群晖NAS】Docker + WebStation + DDNS 部署无端口号HTTPs WordPress
前言
群晖提供官方的DDNS服务,可以直接配置一个类似于xxxx.synology.me的DDNS解析IPv4/IPv6到自己的NAS;群晖还有Web Station应用可以配置Docker的端口号映射,但是他自己占用了80端口,如果给自己的应用手动指定其他端口号,很不优雅。众所周知,xxxx.synology.me中的xxxx是三级域名,域名可以有四级域名,那么是不是可以通过Web Station的配置,指定一个yyy.xxxx.synology.me的域名,直接把他的80端口映射到docker容器上,那岂不是优雅很多,但是好像没有这样的教程?
所以本文通过使用Web Station的“基于名称”搭建【能通过yyy.xxxx.synology.me来访问的】、【通过docker-compose构建的】wordpress
注意:使用家庭宽带搭建wordpress等网站有一定被运营商封禁的风险,此文仅作示例
前置工作
前置工作内容在此不多赘述:
- 群晖已经配置好DDNS,能够通过DDNS访问DMS等现有服务,假设你的域名是xxxx.synology.me
- 群晖支持Docker容器,并且已经安装好Container Manager
- 有科学上网途径或者有可用的第三方镜像库,Container Manager可拉取镜像
安装过程
在File Station中创建如下目录结构,用来存储数据库和Wordpress的数据
在Container Manager中新建项目:
docker-compose使用如下:
version: '3.8'services:db:image: mysql:latestcontainer_name: wordpress_test_dbrestart: unless-stoppedenvironment:MYSQL_ROOT_PASSWORD: your_root_passwordMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: your_passwordvolumes:- /volume1/docker/wordpress_test/db_data:/var/lib/mysql # 直接映射到宿主机目录networks:- wordpress_networkwordpress:image: wordpress:latestcontainer_name: wordpress_testrestart: unless-stoppeddepends_on:- dbenvironment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_NAME: wordpressWORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: your_passwordvolumes:- /volume1/docker/wordpress_test/wordpress_data:/var/www/html # 直接映射到宿主机目录ports:- "8082:80"networks:- wordpress_networknetworks:wordpress_network:driver: bridge
其中需要自定义修改的字段有:
- your_root_password:mysql的root账户密码
- your_password:有两处,请保持一致,给wordpress的账户密码
其他可保持默认,端口号映射不用动,这里虽然指定了宿主机8082映射到容器80,后边还会通过Web Station修改。点击下一步
勾选“通过Web Station设置网页门户”,端口选8082,下一步
点击完成
点击确定配置Web Station
重点:主机名直接填写你想要的四级域名,例如yyy.xxxx.synology.me,要带上前三级域名,前三级域名必须和DDNS配置保持一致,其他不用动
点击新增即可
点击对应门户的链接箭头,直接跳转web界面,如果看到如下界面,就是域名配置正确了,等待数据库初始化,可稍后刷新
刷新看到如下界面,就是配置成功了
剩余wordpress配置不再赘述,至此你已经获得了一个80端口的,带https的wordpress服务
异常处理
如果在Docker项目构建过程中出错,需要重新构建,请讲最开始创建的目录结构删除后重建,确保wordpress_data和db_data中不会有任何文件,如果在File Station中直接全选删除wordpress_data中所有文件,还会有隐藏文件