ubuntu:
sudo apt-get update #更新系统
sudo apt-get -y install docker.io #安装docker
sudo apt-get -y install git #安装git
#sudo apt-get -y install python-pip #安装pip
#sudo apt-get -y install python3-pip #安装pip3
sudo apt-get install docker-compose #安装docker-compose
centos or redhat:
sudo yum -y update #更新系统及内核
sudo yum install -y docker-ce #安装docker
sudo yum install -y git #安装git
sudo yum install -y epel-release #安装EPEL源
#sudo yum install -y python-pip #安装pip
sudo yum install -y python3-pip #安装pip3
sudo yum install docker-compose #安装docker-compose
接下来让docker换源,要不然很慢
#如果想自定义docker镜像下载目录进行执行如下命令
sudo rm -rf /var/lib/docker
sudo mkdir -p /appdata/docker #/appdata/docker为你自定义的目录
sudo ln -s /appdata/docker /var/lib/docker #创建软链接使/var/lib/docker指向/appdata/docker
#设置国内docker镜像源
sudo mkdir -p /etc/docker #创建目录
sudo vim /etc/docker/daemon.json #编辑配置文件
#将如下内容写入:
{
"registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
#******为你注册阿里docker镜像仓库的代码,获取方式见如下文章:
#https://blog.csdn.net/wohaqiyi/article/details/89335932
sudo service docker restart #重启docker
python必须安装3.9以上
最后,部署CTFd平台:
cd /opt
sudo git clone https://github.com/CTFd/CTFd.git #下载CTFd
cd CTFd
sudo docker-compose up -d #docker方式后台下载镜像源并启动
可以git下载CTFD,也可以自己下载再传上来:
下载地址:https://github.com/CTFd/CTFd
我这里的版本是3.5.3
等待一段时间后,
安装完成,在docker中查看状态:
sudo docker ps -a #查看所有容器
[root@localhost CTFd]# sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cead07018859 nginx:1.17 "nginx -g 'daemon of…" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp ctfd_nginx_1
87525f6070d4 ctfd_ctfd "/opt/CTFd/docker-en…" 3 minutes ago Up 3 minutes 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp ctfd_ctfd_1
e9e9be589c9f mariadb:10.4.12 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes ctfd_db_1
e7b05692ad40 redis:4 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes ctfd_cache_1
此时,CTFd平台已经部署完成,下面访问一下80、8000端口均可访问CTFd平台,如果只想通过8000端口访问,停止nginx容器即可。
sudo docker stop cead07018859 #cead07018859为nginx容器CONTAINER ID
也可使用脚本方式部署CTFd,命令如下:
sudo sh prepare.sh #pip安装所需python库
sudo python serve.py #使用Flask框架启动CTFd平台