一、镜像管理
1.1 创建Docker镜像
- 填写镜像名称(如:nginx)
- 填写镜像标签(默认:latest)
- 选择镜像仓库(docker.io 或 私有仓库地址)
- 选择镜像类型分类
- 填写镜像描述
1.2 动态Flag配置
标准环境变量: - 镜像已内置动态Flag,使用SNOW_FLAG环境变量读取
自定义环境变量: - 镜像已内置动态Flag,但不是标准的SNOW_FLAG变量名称,使用自定义变量名(如FLAG、CTF_FLAG) - 填写镜像中的环境变量名
脚本注入:
- 镜像无内置支持,通过脚本注入
- 填写注入脚本,例如:echo "$SNOW_FLAG" > /flag.txt
无需注入: - 镜像不支持动态Flag,使用静态Flag
1.3 端口和资源
- 暴露端口:容器内部暴露的端口,多个端口用逗号分隔,如:80,3306
- 内存限制:轻量级256MB,中型512MB,重型1024MB+
- CPU限制:轻量级0.5核,中型1核,重型2核+
1.4 镜像审核
- 管理员创建的镜像自动审核通过
- 普通用户创建的需审核
- 审核通过后镜像才能使用
二、静态文件管理
2.1 上传静态文件
- 填写文件名称
- 上传压缩包(支持zip、rar、7z、tar、gz格式)
- 填写文件描述
2.2 文件审核
- 管理员创建的文件自动审核通过
- 普通用户上传的文件需管理员审核
- 审核通过后用户才能下载
三、注意事项
3.1 镜像配置
- 镜像名称包含冒号时会自动拆分
- 确保镜像支持动态Flag或使用静态Flag
- 端口配置要与镜像实际端口一致
- 资源限制要根据镜像实际需求设置
3.2 动态Flag
- 标准环境变量使用SNOW_FLAG,镜像需支持该变量
- 自定义环境变量需要确认镜像中的变量名
- 脚本注入适用于不支持环境变量的镜像
- 静态Flag适用于不支持动态Flag的镜像
3.3 资源限制
提示
这里资源限制跟题目服务器资源调度存在关联,出题时请根据题目难度和复杂程度合理设置资源限制,避免资源浪费。一般情况下普通CTF题目 300M内存就能够用
- 轻量级服务(如Nginx):100MB内存,0.3核CPU
- 中型服务(如Web应用):512MB内存,1核CPU
- 重型服务(如数据库):1024MB+内存,2核+CPU
- 根据实际需求合理设置资源限制
3.4 文件管理
- 文件上传有频率限制(30秒内不能重复上传)
- 8分钟内上传超过14次会被封禁
- 确保文件格式正确且无恶意内容
- 压缩包建议使用zip或tar.gz格式
3.5 审核机制
- 管理员创建的资源自动审核通过
- 普通用户创建的资源需要管理员审核
- 及时审核用户提交的资源,避免影响使用
- 审核时要检查资源的安全性和可用性