一、虚拟机环境搭建
1、安装docker、git、docker-compose
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 python3-pip #安装pip3
 sudo pip install docker-compose #pip安装docker-compose,如安装失败sudo pip install --upgrade pip更新pip版本后再安装
2、docker配置&python配置
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配置:
#不安装python2,直接python3
 sudo ln -s /usr/bin/pip3 /usr/bin/pip #创建python3软链接
 sudo ln -s /usr/bin/python3 /usr/bin/python #创建python3软链接
  
3、部署CTFd平台
cd /opt
 sudo git clone https://github.com/CTFd/CTFd.git #下载CTFd
 cd CTFd
 sudo docker-compose up -d #docker方式后台下载镜像源并启动
  
 [root@localhost CTFd]# docker-compose up -d
 WARNING: The Docker Engine you're using is running in swarm mode.
 Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.
 Creating ctfd_db_1    ... done
 Creating ctfd_ctfd_1  ... done
 Creating ctfd_cache_1 ... done
 Creating ctfd_ctfd_1  ... 
 Recreating ctfd_nginx_1 ... done 
安装完成,访问IP:8000,进入CTFd初始化界面,按需注册账号密码后,点finish可进入CTFd平台
 pip3 install gunicorn
https://github.com/CTFd/CTFd
 部署一个ctf题目
sudo mkdir -p /home/cys/CTF #创建CTF目录
 sudo cd /home/cys/CTF
 sudo git clone https://github.com/CTFTraining/CTFTraining.git #安装CTFTraining,注意这里只能git下来目录,目录中是空的,需要一个一个CTF题目去git
 cd CTFTraining
 ls
里面只有目录,没有内容
sudo git clone https://github.com/CTFTraining/0ctf_2016_unserialize.git #下载CTF题目,只要替换0ctf_2016_unserialize为其他目录名称即可下载所有题目
 cd 0ctf_2016_unserialize/ #进入题目目录中
 ls
发现目录中已经有内容了
修改docker-compose.yml文件,设置端口及flag
使用docker-compose启动:
sudo docker-compose up -d #使用docker-compose下载镜像生成容器并启动容器

要16步,第一启动费时间。
已经启动,在本地访问IP:8302发现可以访问,但在其他电脑无法访问

 停止并删除容器,并修改配置文件docker-compose.yml
 sudo docker stop 2c6df451d955 #停止容器,2c6df451d955为CTF题目CONTAINER ID
 sudo docker rm 2c6df451d955 #删除容器,2c6df451d955为CTF题目CONTAINER ID
 sudo vim docker-compose.yml #vim将127.0.0.1修改为0.0.0.0
  
 # 0ctf 2016 piapiapia
 version: "2"
  
 services:
  
   web:
     build: .
     image: ctftraining/0ctf_2016_unserialize
     environment:
       - FLAG=flag{nizhenshigedacongming}
     restart: always
     ports:
       - "0.0.0.0:8302:80"
  本机在浏览器上访问正常,但是同一局域网的其他电脑却无法连接

 解决:
 打开VM点击虚拟机–>设置–>硬件–>网络适配器–>选择桥接:直接连接到物理网络

 
 



















