正常的docker安装
由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
1  | $ sudo apt-get remove docker docker-engine docker-ce docker.io  | 
更新apt包索引:
1  | $ sudo apt-get update  | 
安装以下包以使apt可以通过HTTPS使用存储库(repository):
1  | $ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common  | 
添加Docker官方的GPG密钥:
1  | $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -  | 
使用下面的命令来设置stable存储库:
1  | $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"  | 
再更新一下apt包索引:
1  | $ sudo apt-get update  | 
安装最新版本的Docker CE:
1  | $ sudo apt-get install -y docker-ce  | 
启动docker
1  | sudo service docker start  | 
用hello world进行验证是否成功启动
1  | sudo docker run hello-world  | 
linux环境下pwn题的搭建
这里运用到pwn_deploy_chroot。
https://github.com/giantbranch/pwn_deploy_chroot <–这里
运用这个就可以不用上述繁琐操作,从零开始快速布置你的pwn题
环境配置
1  | # 安装docker  | 
记得先给docker换源!
1  | $vim /etc/docker/daemon.json  | 
更改镜像后重启docker
1  | #systemctl restart docker  | 
使用
- 将所有pwn题目放入bin目录,可以1个,也可以n个(注意名字不带特殊字符,因为会将文件名作为linux用户名)
 - python initialize.py
 - docker-compose up –build -d
 
注:
1.此时可能会在第三步因为dockerfile里面的设置问题,导致源没换成功。此时就手动修改dockerfile内容,加入
1  | RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list  | 
2.它会自动部署pwn题,端口默认从10000依次增加。
因为某xx要求端口是9999,所以我们要修改一下config.py,把这里的10000改成9999,然后把用的pwn放到bin里
3.要想修改flag,就在第二步python initialize.py后修改flag.txt,再运行一次python initialize.py
ok,此时pwn题已部署完毕。此时就可以到image去查看一番。
1  | #查看当前运行的容器,找到对应的CONTAINER ID后进入  | 
查看容器的ip,用nc连
1  | cat /etc/hosts  | 
最后就是用你的exp进行测试。
docker镜像的保存和导出
1.查看要要保存的镜像的ID
docker images

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.列出所有容器
1  | docker ps  | 
2.停止容器
1  | docker stop <CONTAINER ID>  | 
3.删除容器
1  | docker rm <CONTAINER ID>  | 
4.删除镜像
1  | docker rmi <id|name>  | 
docker启动
docker images中已经存在其镜像,对其启动
1  | docker run my/python:v1 cal ##my/python:v1为镜像名和标签  | 
开始容器运行
1  | docker start $CONTAINER_ID  |