首先,我们需要在VPS上安装Docker。本次演示中使用的VPS是在之前的视频中介绍的Google Cloud VPS。如果您不清楚如何开通,请参考上一期的视频:
https://youtu.be/rQbpo_8_vPA?si=nUKgxgb1-DD0BcJU
我个人偏好使用Ubuntu系统,因此本次演示也将使用Ubuntu。由于在Google Cloud上配置Ubuntu系统的VPS并进行远程SSH登录可能稍显复杂,我计划在未来的视频中详细介绍整个过程。在这之前,我们将先介绍如何在VPS上通过SSH登录并安装Docker,以便进行Discourse论坛的安装。
安装docker(两种方法)
在 Ubuntu 上安装 Docker 可以通过几个简单的步骤来完成。以下是在 Ubuntu 系统上安装 Docker CE (Community Edition) 的详细指南:如果你觉得这个优点复杂,可以跳过这段直接看下面方法二。
方法一
1. 更新现有的包列表
首先,打开终端并运行以下命令以更新 Ubuntu 的包列表:
sudo -i
apt update
2. 安装必要的包
安装一些必需的包,这些包允许 apt
通过 HTTPS 使用仓库:
apt install apt-transport-https ca-certificates curl software-properties-common
3. 添加 Docker 的官方 GPG 密钥
这样可以确保从 Docker 的官方仓库下载软件包:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4. 添加 Docker 仓库到 APT 源
你需要添加 Docker 的官方仓库地址到系统的 APT 源中:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
5. 再次更新包列表
添加了新的仓库后,需要再次更新包列表:
apt update
6. 安装 Docker CE
现在,你可以安装 Docker Community Edition:
apt install docker-ce
7. 验证 Docker 是否安装成功
安装完成后,你可以检查 Docker 是否正确安装并正在运行:
systemctl status docker
此命令应该会显示 Docker 服务的状态,表明它已经在运行。
8. 将用户添加到 Docker 组(可选)
默认情况下,只有 root 用户和具有 sudo 权限的用户才能运行 Docker 命令。如果你想要不使用 sudo
直接运行 Docker 命令,可以将你的用户添加到 Docker 组:
sudo usermod -aG docker ${USER}
为了使这些更改生效,你可能需要注销并重新登录,或者重启系统。
9. 测试 Docker 安装
最后,运行 Hello World 镜像以测试 Docker 是否正确安装:
docker run hello-world
如果一切正常,你将看到一条消息,说明 Docker 已经成功安装并且工作正常。
方法二
自动化安装docker
使用 Docker 提供的便利脚本安装 Docker:
- 这个脚本会自动执行添加仓库、安装密钥和安装 Docker 的步骤。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
将当前用户添加到 Docker 组:
这样你就不需要每次在调用 Docker 命令时加上
sudo
。sudo usermod -aG docker ${USER} # 你需要注销并重新登录,或者重启你的系统,以使这个变更生效。
安装 Docker Compose
Docker Compose 可以通过一个简单的命令安装,特别是如果你想安装它作为一个 Docker 插件:
安装 Docker Compose 插件:
这个命令将 Docker Compose 安装为 Docker 的插件,简化了使用过程。
sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-$(uname -m) -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
验证 Docker Compose 安装:
docker compose version
验证安装
确认 Docker 运行:
sudo docker run hello-world
确认 Docker Compose 版本:
docker compose version
通过以上步骤,你可以更便捷地在 Ubuntu 22.04 上安装 Docker 和 Docker Compose,而不需要手动配置仓库和密钥。这种方法适合快速设置开发环境,但在生产环境中,建议按照官方文档详细配置以确保系统的安全性和稳定性。
这就是在 Ubuntu 上安装 Docker 的全过程。现在,你可以开始使用 Docker 来创建和管理容器了。
不过在运行容器之前,还需要:
解析域名
解析域名到vps
获取邮件服务专用密码
建议使用专用密码,邮箱密码也可以。
例如google邮箱的专用密码在google账户安全页面。设置两步验证,然后进入两步验证页面,下方有个专用密码。设置专用密码就可以了。这里如果不会获取专用密码,直接用邮箱密码也可以。如果有需要的话,到时候我们也可以单独讲一下如何获取专用密码。这里暂不赘述,原因后面和大家讲。先演示Discourse 论坛的安装。
安装论坛程序
创建一个目录 用于存放 Discourse 文件:
mkdir /var/discourse
克隆 Discourse Docker 仓库 到该目录:
git clone https://github.com/discourse/discourse_docker.git /var/discourse
进入该目录:
cd /var/discourse
chmod 700 containers
执行安装
./discourse-setup
按照引导提示填写配置即可,涉及到的命令如下:
./discourse-setup
###网站域名,不带http(s)
Hostname for your Discourse? [discourse.example.com]: 1keji.net
Checking your domain name . . .
Connection to 1keji.net succeeded.
#管理员邮箱
Email address for admin account(s)? [[email protected],[email protected]]: [email protected]
#smtp地址
SMTP server address? [smtp.example.com]: smtp.gmail.com
#smtp端口,回车默认587,其他端口自行输入
SMTP port? [587]:
#smtp账号,填邮箱账号即可
SMTP user name? [[email protected]]: [email protected]
#smtp密码,如果是qq邮箱等需要填授权码
SMTP password? [pa$$word]: mqtxupkksnahbabc
#发件地址和邮箱账号保持一致
notification email address? [[email protected]]: [email protected]
#输入回车跳过
Optional email address for Let's Encrypt warnings? (ENTER to skip) [[email protected]]:
Optional Maxmind License key (ENTER to continue without MAXMIND GeoLite2 geolocation database) [1234567890123456]:
#核对信息,没问题回车,有问题输入n重填
Does this look right?
搜设置好之后,回车自动安装就可以了。其中有些步骤耗时有点长,会有卡顿的感觉。等一会就好了。晚安装完毕之后打开解析好的域名地址,点击页面的register即可开始配置。详情见视频教程。
以上是基于vps单独安装discourse论坛,总体上安装比较顺利,也比较简单。
但是如果vps有其他应用,比如宝塔面板占用了80端口,或者80或者443端口不通,这样安装到了最后就会报错,网页也会显示服务器内部错误而无法打开。
那么这种情况,比如说先安装了宝塔,还能不能成功安装discourse论坛呢?
经过我对网上教程的的多次尝试并且失败之后,慢慢的还是摸索到了真正的解决方案,可以确保成功安装。
下面是针对这种情况的安装解决方案:
首先以下两种情况域名验证这一步会出现问题:
- 80或者443端口不通
- 80或者443端口被占用,比如宝塔面板占用
这种情况安装会中断,这时候我们可以先跳过域名检查来安装程序:
./discourse-setup --skip-connection-test
按照引导提示填写配置之后,可以在containers/app.yml里面修改相关配置。
首先要进入containers目录
cd /var/discourse
设置文件夹和文件权限
chmod 777 containers
chmod 777 containers/app.yml
在ftp端直接修改app.yml参数。如果VPS有宝塔等面板的话,要将配置中http和https前方的#号删除,并将‘:’前方的80和443改为其它端口
恢复文件夹和文件权限
chmod 700 containers
chmod 700 containers/app.yml
然后重新运行容器,
./discourse-setup
设置面板的反代即可。
如果需要修改配置:
只需进入并修改该文件: var/discourse/containers/app.yml
修改后进行重启容器即可:
cd /var/discourse
./launcher destroy app
./launcher start app
注意事项:
邮箱服务的密码不可以有#字符,否则会认证失败。
网上有一种先配置app.yml文件的方法如下:
复制示例配置文件 并命名为
app.yml
:cp samples/standalone.yml containers/app.yml
编辑配置文件:
nano containers/app.yml
启动和构建 Discourse:
使用以下命令构建和启动 Discourse 容器:
./launcher bootstrap app
./launcher start app
这种方法小白不建议使用,容易配置出错,并且在配置与安装完成后,可能会出现宝塔面板反代失败的情况。建议先按照上方的安装步骤,正常安装之后再修改配置,之后再重启服务
评论 (0)