记一下,防止自己忘了
配的时候出现了多种问题,尤其是最后一步,包括编码,无命令,折腾了一晚上,最后换操作系统,然后切换超级管理员搞定了, 前面的步骤有问题的话搜一下应该也能搜到,应该用sudo apt-get update就可以解决了吧(反正我是这样的?)
转载zhz师傅的,看的zhz师傅的博客搭的
https://tina2114.github.io/2020/03/22/docker%E7%9A%84%E6%90%AD%E5%BB%BA/#more
配置
一台新开的虚拟机/云服务器
这次用的是u16
1、 curl ``-``s https:``/``/``get.docker.com``/` `| sh
2、 apt install docker``-``compose git
3、 git clone https:``/``/``github.com``/``giantbranch``/``pwn_deploy_chroot.git
给docker换源
vim /etc/docker/daemon.json
#输入以下内容
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
重启docker
systemctl restart docker
1、将所有pwn题目放入bin目录,可以1个,也可以n个(注意名字不带特殊字符,因为会将文件名作为linux用户名)
2、python initialize.py
3、sudo -i
4、docker-compose up --build -d
注:
它会自动部署pwn题,端口默认从10000依次增加。
因为某xx要求端口是9999,所以我们要修改一下config.py,把这里的10000改成9999,然后把用的pwn放到bin里
要想修改flag,就在第二步python initialize.py后修改flag.txt,再运行一次python initialize.py
pwn题部署完毕
查看:
#查看当前运行的容器,找到对应的CONTAINER ID后进入
sudo docker ps
sudo docker exec -ti <CONTAINER ID> bash
查看容器的ip,用nc连
cat /etc/hosts
最后如何映射外网,我用的是云服务器,直接把安全组的端口10000-10005(要用几个开几个)打开就好了
虚拟机的话,没配 XD
另一台虚拟机: nc 本机ip(不是docker的ip!) 10000 测试一下
最后用你的exp进行测试
额外的:
修改libc版本
修改镜像名:
修改一些信息:
docker镜像的保存和导出
1、docker images
2、docker save -o gitlab.tar pwn_deploy_chroot
或者
1.查看要要保存的镜像的ID
docker images
image-20200403110914281
2.保存镜像为tar包
docker save -o gitlab.tar
3.用scp,xftp等等将已经压缩好的gitlab.tar包弄到服务器,虚拟机(你想弄到的地方)
4.将gitlab.tar包导出到本地来(一定要有docker的运行环境,docker安装:https://www.jianshu.com/p/9c96ea8e6f41)
docker load -i gitlab.tar
5.运行docker容器
docker run
删除docker容器
1.列出所有容器
docker ps
2.停止容器
docker stop <CONTAINER ID>
3.删除容器
docker rm <CONTAINER ID>
4.删除镜像
docker rmi <id|name>
docker启动
docker images中已经存在其镜像,对其启动
docker run my/python:v1 cal
my/python:v1为镜像名和标签
开始容器运行
docker start $CONTAINER_ID