Docker
?Docker
是一个用于开发,交付和运行应用程序的开放平台。Docker
使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker
,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker
的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
Ubuntu 22.04
Ubuntu 24.04
CentOS 7
CentOS 8
Debain 10
Debain 11
Debain 12
amd64
arm64
配置项 | 最低 | 推荐 |
---|---|---|
CPU | 4核 | 8核 |
内存 | 8GB | 16GB |
硬盘 | 40GB | 200GB |
带宽 | 10M | 50M |
本篇文章我将以腾讯云的 Ubuntu22.04
机器作为演示。
Docker
如果您的机器已经安装好了
Docker
的话,您可以直接看下一步。
请执行下面命令安装 docker
curl -fsSL https://download.playeduos.com/install-docker-20240705.sh | bash -s docker --mirror Aliyun
等待一段时间,命令执行完成之后,我们可以执行下面命令查看当前安装的 docker
版本
如果您是
CentOS
的话,执行上述命令之后,您还需要执行sudo systemctl start docker
启动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
执行结果如下:
[+] Running 8/8
✔ Network playedu_playedu Created 0.1s
✔ Volume "playedu_redis-data" Created 0.0s
✔ Volume "playedu_mysql-data" Created 0.0s
✔ Volume "playedu_minio-data" Created 0.0s
✔ Container playedu-redis-1 Started 0.5s
✔ Container playedu-mysql-1 Started 0.5s
✔ Container playedu-minio-1 Started 0.5s
✔ Container playedu-playedu-1 Started
到这,等待20s左右,我们就可以在浏览器输入下面的地址访问 playedu
的服务了:
需要注意的是,如果您的机器是云服务上比如腾讯云,阿里云之类的,那么您还需要到它们的控制台配置下防火墙白名单,允许
9700
,9800
,9801
,9900
,9002
端口的无限制访问。
端口 | 地址 | 默认账号 |
---|---|---|
后台管理 | http://服务器IP:9900 | admin@playedu.xyz / playedu |
PC学员端口 | http://服务器IP:9800 | - |
H5学员端口 | http://服务器IP:9801 | - |
API学员端口 | http://服务器IP:9700 | - |
MinIO存储端口 | http://服务器IP:9002 | - |
https
协议在简单体验 playedu
之后,您会发现通过服务器IP和端口访问终究是比较麻烦且默认的 http
协议也不安全。下面,我将指导您配置通过域名访问且开启 https
协议。
要想通过域名访问 playedu
服务的话,那么我们需要给各个端口分配好域名。下面,我将举个例子说明。如果您对域名分配没有什么概念的话,那么您可以完全按照我的思路来进行分配。
在编写本文,我这边注册了一个域名 playedu.xyz
,基于这个域名,我将分配五个子域名给到 playedu
的五个端口,如下:
端口 | 域名 |
---|---|
后台管理 | admin.playedu.xyz |
PC学员端口 | edu.playedu.xyz |
H5学员端口 | h5.playedu.xyz |
API端口 | api.playedu.xyz |
MiniO端口 | minio.playedu.xyz |
分配好域名之后,我们将子域名解析到服务器(解析过程就不在赘述。)下面,将假设您已经完成了域名的解析配置,否则下文的教程您可能会失败(因为会涉及到自动申请 SSL
证书的流程,如果未配置解析会导致申请 SSL
证书失败)。
首先,创建个 Caddyfile
文件:
sudo mkdir /playedu-data
sudo vi /playedu-data/Caddyfile
请将下面的内容复制并修改为您的域名,然后保存:
请注意,下面的内容是我编写本文使用的域名。您要将其中的域名修改为您自己的域名!!!
api.playedu.xyz {
reverse_proxy playedu:9898
}
edu.playedu.xyz {
reverse_proxy playedu:9800
}
h5.playedu.xyz {
reverse_proxy playedu:9801
}
admin.playedu.xyz {
reverse_proxy playedu:9900
}
minio.playedu.xyz {
reverse_proxy minio:9000
}
保存内容。然后执行下面的命令创建 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
后台,点击左侧菜单的系统配置:
9700
,9800
,9801
,9900
,9002
白名单