Docker部署小记
上次出题还是上次,好多指令已经记不清了.
暂时写在这里,给自己也给以后的你们查阅.
有用的工具
如果你去喜欢的浏览器搜索,不难发现xinetd确实很实用.(笑)
1 | git clone https://github.com/Eadom/ctf_xinetd.git |
安装之后发现长这样
手搓docker-compose.yml(不会也可以找人机hh).
1 | version: '3' |
ctf.xinetd文件
1 | service ctf |
./+自己编译好的ELF文件
如果涉及到堆的题目 修改Dockerfile至与红框内容一致.(18.04以上的都和这个保持一致)

start.sh文件
1 | #!/bin/sh |
本地测试
1 | docker run -d -p "127.0.0.1:8888:9999" -h "pwn" --name="pwn" pwn |
-p后面的内容就是把9999端口映射到8888端口(可改)
–name后面的内容是指定容器的名称,而-h是指定容器的hostname,而最后的是image的名字,要根据建的镜像名进行修改.
部署参考文章:web和pwn题的简单动态flag实现_gzctf-CSDN博客
实用的命令
You’re master!
安装环境
1 | 我的系统环境:Ubuntu 22.04 |
制作镜像并上传
1 | docker build -t "pwn" . |
注意后面的 .
查看本机所有镜像
1 | docker images |
运行容器
1 | docker run |
停止容器
1 | docker stop |
强制停止容器
1 | docker kill |
删除容器
1 | docker rm |
强制删除镜像
1 | docker rmi -f <IMAGE_ID> |
删除所有未被使用的镜像
1 | docker image prune -a |
删除所有镜像
1 | docker rmi -f $(docker images -q) |
这个命令会删除包括 <none> 标签在内的所有镜像.
其中两个具体什么意思其实也可以猜出来,搞不赢也可以去STFW.
进入 Docker 容器以查看其中的内容
1 | docker exec -it <CONTAINER_ID> /bin/bash |
Tips
操作中特别注意权限问题(提权和可777),以及预留够足够的空间.
上传到平台一定要进行好测试.
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 幻境!
评论



