0x0.前言
前言
前几天上了黑苹果,想着直接用docker布置个pwn解题环境就好了,不想再用VM装kali了,于是就开始了折腾docker,忙完,写写总结
关于docker的学习,我是看 Docker —— 从入门到实践 很好的一本书,也不多,看完你对docker的理解会提升一个等级,当然,如果你是docker高手当我没说
0x1.安装docker
1.用brew安装
1 | brew cask install docker |
2.自己上官网下载二进制文件
0x2.部署环境
我参考了pwndocker自己瞎改了,用的是kali的镜像
我的垃圾Dockerfile:
1 | FROM kalilinux/kali-linux-docker |
用法:复制,建立一个文件夹再在里面新建一个Dockerfile文件,把上面的代码粘贴进去
在文件夹目录下运行
1 | dcoker build -t pwn . |
等构建完成
0x3.docker常用操作
查看镜像(docker images
)
1 | root@VM-0-17-ubuntu:~# docker images |
现在我们要运行kalilinux/kali-linux-docker这个镜像可以(docker run -it [REPOSITORY/IMAGE ID] /bin/bash)
1 | root@VM-0-17-ubuntu:~# docker run -it kalilinux/kali-linux-docker /bin/bash |
或者
1 | root@VM-0-17-ubuntu:~# docker run -it f26f3ae90aee /bin/bash |
docker run -it xxxxx /bin/bash
的意思是运行xxxxx容器的/bin/bash,也就是shell,就可以进行交互
如果运行交互的时候要后台运行回到主机可以
1 | 按下 ctrl + p + q就可以后台运行 |
后台运行的容器要怎么重新回到里面,我的做法是(docker attach aca5c32a9cec
)
1 | root@aca5c32a9cec:/# |
很多时候我们需要修该容器的文件内容,但是每次exit容器后你所做的更改是不会保存的所以(docker commit [CONTAINER ID]
)这样操作的话会生成另一个容器
1 | root@aca5c32a9cec:/# read escape sequence |
我平常是(docker commit [CONTAINER ID]原容器REPOSITORY
)这样就不会生成新容器
1 | root@aca5c32a9cec:/# read escape sequence |
1 | docker search hello-docker # 搜索hello-docker的镜像 |
0x4.docker –help
1 | Usage: |
1 |