docker复现ctf题目环境

1,062 阅读1分钟

参考文章:blog.csdn.net/weixin_4087…

以HCTF 2018 warmup为例

1.获得docker文件

git clone https://github.com/ACce1er4t0r/hctf2018_warmup

2.进入目录打开终端,创建名为warmup_img的镜像

docker build -t warmup_img .

3.查看镜像信息

[root@localhost hctf2018_warmup]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED          SIZE
warmup_img      latest    792fb501f674   12 seconds ago   446MB
ubuntu          20.04     ba6acccedd29   4 weeks ago      72.8MB
nimmis/apache   14.04     5580ec2505db   2 years ago      316MB

4.创建容器并查看其端口

[root@localhost hctf2018_warmup]# docker run -i -d -P warmup_img
0f3e98c1ddd7d44336153da572f6a8f8ce5355809d51068756a8d965a8f96c6f
[root@localhost hctf2018_warmup]# docker ps
CONTAINER ID   IMAGE        COMMAND      CREATED         STATUS         PORTS                                     NAMES
0f3e98c1ddd7   warmup_img   "/my_init"   6 seconds ago   Up 5 seconds   0.0.0.0:49155->80/tcp, :::49155->80/tcp   vigorous_hofstadter

说明:

-i  以交互模式运行容器,常与-t连用

-d 后台运行

-P 随机把容器的端口映射到一个主机未使用的高端口

5.在浏览器中连接容器

①虚拟机:虚拟机中访问127.0.0.1:49155

②宿主机:先查看虚拟机centos的ip

虚拟机终端输入ip addr

找到ens33的inet,这里是192.168.238.151

知道ip后,宿主机中访问192.168.238.151:49155

image.png

6.remake

如果手残把环境打炸了,输入

docker restart <containerId>

重启容器