本文全部基于个人使用经验且仍在完善,如有错漏,尽情谅解。
ServerCat 是 Hyperapp 作者 Baye 的新应用,它们都是安装和管理 docker 的高效工具。
0x01 准备
软硬件
自行准备并搜索相关教程
- 一台公网可以访问的服务器或 VPS,打开 80 和 443 等端口;
- 一个域名,DNS 解析到上面的服务器;
- 一台 iPhone 或 iPad,安装 ServerCat,添加上面的服务器;
- 手边最好有台电脑,方便查资料和排错;
- 尝试一万次的决心。
Docker
一个 WordPress 网站需要这些基本服务
- 数据库,这里用 MariaDB;
- 反代服务,这里用 nginx-proxy;
- 网站,WordPress。
可选
- SSL/TLS 支持,这里用 letsencrypt-nginx-proxy-companion;
- 数据库管理,这里用 phpMyAdmin。
其实看官方文档就足够了

在 dockerhub 搜索所需 docker
0x02 开始安装
以下操作全部在 ServerCat 的容器(Pods)内完成
MariaDB
添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器。
镜像(Image)填写 mariadb 。


选项(Options)中填写容器名(Container Name),如mariadb,记住这个名字,后面链接数据库会用到。
重启(Restart)选择 always,这个根据需要,一般选 always。

进入环境变量(Enviroment),这里添加两个环境变量:
1
2
3
MYSQL_ROOT_PASSWORD=12345678 #数据库管理员密码,默认账户为 root
MYSQL_DATABASE=database #创建容器时新建一个名为 database 的数据库,后面我们可以直接使用这个数据库
#其它环境变量请查看官方文档
进入挂载(Mounts),映射一个路径,这样不用进入容器就可以管理数据库:
1
/srv/docekr/mariadb:/var/lib/mysql #冒号前为主机路径(可自行修改),后为容器路径(不要改)


保存这个容器,点击服务器一栏 → 安装。


长按容器标签栏,可编辑或删除容器
nginx-proxy
🐳
- 添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器;
- 镜像(Image)填写
jwilder/nginx-proxy; - 选项(Options)中填写容器名,如
nginx-proxy; - 重启(Restart)选择 always,这个根据需要,一般选 always;
- 进入端口(Ports),添加两个端口映射:
80:80和443:443; 进入挂载(Mounts),映射路径:
1
2
3
4/srv/docker/certs:/etc/nginx/certs #SSL 证书目录,开启 SSL 时需要
/srv/docker/nginx/vhost.d:/etc/nginx/vhost.d #nginx 配置文件目录
/srv/docker/nginx/html:/usr/share/nginx/html
/var/run/docker.sock:/tmp/docker.sock:ro #这条不要修改保存这个容器,点击服务器 → 安装。
WordPress
🐳
- 添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器;
- 镜像(Image)填写
wordpress; - 选项(Options)中填写容器名,如
wordpress; - 重启(Restart)选择 always,这个根据需要,一般选 always;
在其它(EXTRA)中加入这样一条:
1
--link mariadb:db #这样就让 WordPress 和之前建立的数据库建立了连接
进入环境变量(Enviroment),这里我们添加七个环境变量:
1
2
3
4
5
6WORDPRESS_DB_HOST=mariadb #网站主数据库,用前面建的数据库容器名
WORDPRESS_DB_NAME=database #网站数据,用前面建数据库时建的数据库 😂
WORDPRESS_DB_PASSWORD=12345678 #数据库管理员密码,默认账户 root
VIRTUAL_HOST=ojbk.com #你的域名,多个域名用英文逗号“,”隔开
LETSENCRYPT_HOST=ojbk.com #为你的域名申请 SSL 证书,这个要配合 [letsencrypt-nginx-proxy-companion](https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-companion),多个域名用英文逗号“,”隔开
LETSENCRYPT_EMAIL=xx@ojbk.com #你的邮箱进入挂载(Mounts),映射一个路径,这样不用进入容器就可以管理网站原始数据:
1
/srv/docekr/WordPress:/var/www/html #冒号前为主机路径(可自行修改),后为容器路径(不要改)
保存这个容器,点击服务器 → 安装。
letsencrypt-nginx-proxy-companion
🐳
一个现代网站没有 SSL/TLS 证书实在不像话,这个 Docker 可以自动帮你申请和更新 Let’s Encrypt 证书,非常方便。
- 添加容器并自定义一个名称,这个名字只是在 ServerCat 中的标记。在服务器菜单选中所需服务器;
- 镜像(Image)填写
jrcs/letsencrypt-nginx-proxy-companion; - 选项(Options)中填写容器名,如
SSL; - 重启(Restart)选择 always,这个根据需要,一般选 always;
在其它(EXTRA)中加入这样一条:
1
--volumes from mginx-proxy #继承前面 nginx-proxy 容器的路径,省的再输一遍,容器名别写错
进入挂载(Mounts),映射一个路径:
1
/var/run/docker.sock:/var/run/docker.sock:ro #这条不要修改
保存这个容器,点击服务器 → 安装。
至此,你的网站应该可以安全访问了。
phpMyAdmin 有需要请自行安装,方法上面都涉及了。
0x03 除错
查看日志
学会看日志是除错最重要的步骤。
在状态页面点击服务器名称一栏
长按需要除错的容器名称一栏,查看日志(Logs)

别点歪了😂

不太好按,日志页面的滚动也有问题
最后,欢迎来 Telegram 交流:https://t.me/daiseax
Enjoy!
0x04 进阶操作(待续)
进阶操作(待续)
将自己的数据库恢复到新建数据库中
文件夹权限问题
上传限制
其他问题参考 Hyperapp 文档
ServerCat 和 Hyperapp

评论