docker 搭建CTFd练习平台
风二西
2022年06月05日 00:13

虚拟机上安装docker

下载ubuntu

代码块
JavaScript
自动换行
复制代码
网易镜像站
http://mirrors.163.com/ubuntu-releases/20.04/
复制成功

开启ssh

代码块
JavaScript
自动换行
复制代码
sudo apt update
sudo apt install openssh-server
sudo systemctl enable ssh
复制成功

安装docker

代码块
JavaScript
自动换行
复制代码
curl -sSL https://get.daocloud.io/docker | sh
复制成功

开机启动docker

代码块
JavaScript
自动换行
复制代码
sudo systemctl enable docker
复制成功

docker 国内镜像

代码块
JavaScript
自动换行
复制代码
#创建或修改 /etc/docker/daemon.json
{
  "registry-mirrors": [
    "http://hub-mirror.c.163.com",
    "https://mirrors.ustc.edu.cn/docker-ce/"
  ]
}

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
复制成功

搜索ctfd镜像

代码块
JavaScript
自动换行
复制代码
docker search ctfd
复制成功

下载镜像

代码块
JavaScript
自动换行
复制代码
docker pull ctfd/ctfd
复制成功

启动容器

代码块
JavaScript
自动换行
复制代码
docker run -d -p 18000:8000 --name=ctfd123 ctfd/ctfd
复制成功

设置容器自启动

代码块
JavaScript
自动换行
复制代码
docker update --restart=always ctfd123
复制成功

进入容器

代码块
JavaScript
自动换行
复制代码
sudo docker exec -it ctfd123 /bin/bash
复制成功

汉化文件下载

代码块
JavaScript
自动换行
复制代码
https://github.com/Gu-f/CTFd_chinese_CN
复制成功

替换容器里的汉化文件

代码块
JavaScript
自动换行
复制代码
docker cp  /home/f2x/themes/ ctfd123:/opt/CTFd/CTFd/
复制成功

去掉首页广告

将需要更改的图片拷贝到网站里

代码块
JavaScript
自动换行
复制代码
sudo docker cp /home/f2x/2.png ctfd123:/opt/CTFd/CTFd/themes/core/static/img/2.png
复制成功

准备一个python脚本

代码块
JavaScript
自动换行
复制代码
import sqlite3
con123= sqlite3.connect('/opt/CTFd/CTFd/ctfd.db')
cur123= con123.cursor()
sqlcmd='''UPDATE pages SET content = '<div class="row">
    <div class="col-md-6 offset-md-3">
        <img src="/themes/core/static/img/2.png" />
    </div>
</div>' WHERE id = 1;'''
cur123.execute(sqlcmd)
con123.commit()
复制成功

上传以后放到容器里面

代码块
JavaScript
自动换行
复制代码
docker cp  /home/f2x/aa.py ctfd123:/opt/CTFd/
复制成功

容器提交镜像

代码块
JavaScript
自动换行
复制代码
docker commit ctfd123 ctferxss1027
复制成功

虚拟机上设置端口映射