docker复现ctf

docker复现ctf

0x00 docker常用命令

  1. 拉取镜像

    1
    docker pull [image]
  2. 查看docker当前镜像

    1
    2
    3
    docker image ls 

    docker images
  3. 新建docker容器,并映射端口号

    1
    docker run -d -p [host port]:[docker port][image]
  4. 查看运行中的docker容器

    1
    docker ps -a
  5. 进入一个docker容器

    1
    docker exec -it [container id] bash
  6. 拷贝本地文件到docker

    1
    docker cp [本地路径] [container id]:[container 路径]
  7. 启动/停止一个docker容器

    1
    2
    docker start [container id]
    docker stop [container id]
  8. 删除一个docker容器(注意:在镜像对应的容器后才可以删除镜像ID)

    1
    docker rm [container id]

0x01 使用docker搭建一道简单的ctf题目

  1. 搜索lamp环境的docker镜像

    1
    docker search lamp

  2. 拉取“tutum/lamp”镜像

    1
    docker pull tutum/lamp
  3. 拉取完成以后,查看本地docker镜像

    1
    docker images

  4. 新建一个docker容器

    1
    2
    3
    docker run -d -p 100:80 -p 3307:3306 tutum/lamp
    -d //容器后台运行
    -p //指定映射端口
  5. 查看系统中运行的docker容器

    1
    docker ps -a

  6. 使用浏览器访问一下主页,查看映射是否正常

  7. 将ctf题目源码拷贝到container的主目录中

    1
    docker cp test_ctf/ a47e911ecebf:/var/www/html/
  8. 进入docker container

    1
    2
    3
    docker exec -it a47e911ecebf bash
    -i //让容器的标准输入保持打开
    -t //让docker分配一个伪终端并绑定到容器的标准输出上

  9. 进入容器中的数据库,创建好ctf题目需要的数据库、数据表等等。
    (数据库密码为空)

    1
    mysql -uroot -p

  10. 到这里,这个ctf题目就搭建好了,我们访问一下

    在这里插入图片描述