说明:此教程仅适用PlayEdu开源版2.0及之后版本。
Docker ?Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
Ubuntu 22.04Ubuntu 24.04CentOS 7CentOS 8Debain 10Debain 11Debain 12amd64arm64| 配置项 | 最低 | 推荐 |
|---|---|---|
CPU | 4核 | 8核 |
内存 | 8GB | 16GB |
硬盘 | 40GB | 200GB |
带宽 | 10M | 50M |
本篇文章我将以腾讯云的 Ubuntu22.04 机器作为演示。
Docker如果您的机器已经安装好了
Docker的话,您可以直接看下一步。
请执行下面命令安装 docker
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
等待一段时间,命令执行完成之后,我们可以执行下面命令查看当前安装的 docker 版本
sudo docker version
结果如下:
ubuntu@VM-0-9-ubuntu:~$ sudo docker version
Client: Docker Engine - Community
Version: 27.0.3
API version: 1.46
Go version: go1.21.11
Git commit: 7d4bcd8
Built: Sat Jun 29 00:02:33 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 27.0.3
API version: 1.46 (minimum version 1.24)
Go version: go1.21.11
Git commit: 662f78c
Built: Sat Jun 29 00:02:33 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.18
GitCommit: ae71819c4f5e67bb4d5ae76a6b735f29cc25774e
runc:
Version: 1.7.18
GitCommit: v1.1.13-0-g58aa920
docker-init:
Version: 0.19.0
GitCommit: de40ad0
playedu 代码请执行下面命令下载 playedu 的最新代码
CentOS可以通过sudo yum update && sudo yum install git安装git
cd ~
git clone --branch main https://gitee.com/playeduxyz/playedu.git playedu
cd playedu
sudo docker compose up -d
如果您执行
docker compose无效的话,可以替换为docker-compose尝试。
执行结果如下:
[+] Running 8/8
✔ Network playedu_playedu Created 0.1s
✔ Volume "playedu_mysql-data" Created 0.0s
✔ Container playedu-mysql-1 Started 0.5s
✔ Container playedu-playedu-1 Started
到这,等待20s左右,我们就可以在浏览器输入下面的地址访问 playedu 的服务了:
需要注意的是,如果您的机器是云服务上比如腾讯云,阿里云之类的,那么您还需要到它们的控制台配置下防火墙白名单,允许
9800,9801,9900端口的无限制访问。
| 端口 | 地址 | 默认账号 |
|---|---|---|
| 后台管理 | http://服务器IP:9900 | admin@playedu.xyz / playedu |
| PC学员端口 | http://服务器IP:9800 | - |
| H5学员端口 | http://服务器IP:9801 | - |
https 协议在简单体验 playedu 之后,您会发现通过服务器IP和端口访问终究是比较麻烦且默认的 http 协议也不安全。下面,我将指导您配置通过域名访问且开启 https 协议。
要想通过域名访问 playedu 服务的话,那么我们需要给各个端口分配好域名。下面,我将举个例子说明。如果您对域名分配没有什么概念的话,那么您可以完全按照我的思路来进行分配。
在编写本文,我这边注册了一个域名 playedu.xyz ,基于这个域名,我将分配五个子域名给到 playedu 的三个端口,如下:
| 端口 | 域名 |
|---|---|
| 后台管理 | admin.playedu.xyz |
| PC学员端口 | edu.playedu.xyz |
| H5学员端口 | h5.playedu.xyz |
分配好域名之后,我们将子域名解析到服务器(解析过程就不在赘述。)下面,将假设您已经完成了域名的解析配置,否则下文的教程您可能会失败(因为会涉及到自动申请 SSL 证书的流程,如果未配置解析会导致申请 SSL 证书失败)。
首先,创建个 Caddyfile 文件:
sudo mkdir /playedu-data
sudo vi /playedu-data/Caddyfile
请将下面的内容复制并修改为您的域名,然后保存:
请注意,下面的内容是我编写本文使用的域名。您要将其中的域名修改为您自己的域名!!!
edu.playedu.xyz {
reverse_proxy playedu:9800
}
h5.playedu.xyz {
reverse_proxy playedu:9801
}
admin.playedu.xyz {
reverse_proxy playedu:9900
}
保存内容。然后执行下面的命令创建 caddy 服务:
请注意,再执行下面的命令之前,请确认开放了服务器的
80和443端口!!!
sudo docker run -d --name playedu-caddy \
--restart=always \
-p 80:80 -p 443:443 \
--network playedu_playedu \
-v /playedu-data/Caddyfile:/etc/caddy/Caddyfile \
registry.cn-hangzhou.aliyuncs.com/hzbs/caddy:2.8.4-alpine
上述命令执行之后,等待30s左右我们就可以通过域名访问 playedu 服务了。
到这里,我们可以通过域名访问 playedu 服务了。想要完整的使用 playedu 系统还需做进一步的配置。首先,进入到 playedu 后台,点击左侧菜单的系统配置:
