跳转至

Docker相关

docker相关

docker快速入门

docker在线实验

1576829447658-5cd072ce-9953-4177-8c7d-1e49c2413016.png

安装

curl -fsSL https://get.docker.com -o get-docker.sh

sh get-docker.sh --mirror Aliyun

基本操作

启动  

systemctl start docker

守护进程重启

systemctl daemon-reload

重启 docker 服务

systemctl restart docker  /  service docker restart

关闭

docker service docker stop / docker systemctl stop docker

运行一个容器,命名为yichen

docker run -d -p 10001:80 --name yichen apacje

挂载目录

-v /root/:/root/

进入容器里面,开一个bash

docker exec -it id /bin/bash

重启容器

docker restart id

关闭容器

docker stop id

删除容器

docker rm -f id

通过提交一个镜像

docker commit id yichen

把镜像提交到 dockerhub 上

docker login (登录)

docker push 镜像名

把镜像上传到阿里云的容器镜像仓库

先创建一个命名空间,在创建一个仓库(代码源选本地)

docker login --username=阿里云用户名 registry.cn-shanghai.aliyuncs.com

密码可以在这里设置

1598164967355-e9d8c25a-e001-4bfb-9fec-3fdb674cfc99.png

docker tag 镜像id registry.cn-shanghai.aliyuncs.com/命名空间/你的仓库名

docker push registry.cn-shanghai.aliyuncs.com/命名空间/你的仓库名

查看运行的docker

docker ps

重命名一下

docker rename 原容器名  新容器名

搭建web环境

拉取一个apache-php5

docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

运行

docker run -d -p 2027:80 registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

把题目复制到/var/www目录下面

docker cp ./web2 0c7b9ddc107a:/var/www

出现这些问题使用 chmod 777 文件名 给权限

Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0

Fatal error: Unknown: Failed opening required '/var/www/index.php' (include_path='.:/usr/local/lib/php') in Unknown on line 0

搭建pwn环境

这样可以在实体机单个匹配一条命令

socat tcp-l:8887,fork exec:./pwn1

~~把 xinetd 下下来 ~~~~https://github.com/Eadom/ctf_xinetd~~

~~题目复制到 bin 文件夹,把 ctf.xinetd 的命令改成运行的~~

~~(之前是 ./helloworld,改成自己的文件名)~~

~~xinetd 里面 Dockerfile 里面的清华的源不行,换成阿里的~~

~~打开,把 pub_port 改成想要的端口~~

~~docker run -d -p "0.0.0.0:pub_port:9999" -h "helloworld" --name="helloworld" helloworld~~

有个更好的方法:

把文件下载下来

git clone https://github.com/giantbranch/pwn_deploy_chroot.git

然后把所有题目直接改好名字,放在 bin 文件夹

运行 python initialize.py 分配好 flag,会把分配的 flag 放在 flags.txt

运行 docker-compose up --build -d 

同时每个题目对应的端口也会放在 flags.txt

改 config.py 这个选项为 True 可以使用 cat flag 代替 /bin/sh 提高安全性

# Whether to replace /bin/sh
REPLACE_BINSH = False

复现环境

安装 docker-compose

<font style="color:#333333;">sudo apt install docker-compose</font>

拉起环境

docker-compose up -d

docker-compose.yml 中查看端口,访问即可

出现AttributeError: 'module' object has no attribute 'SSL_ST_INIT'问题:

解决:

rm -rf /usr/lib/python2.7/dist-packages/OpenSSL

rm -rf /usr/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.egg-info

sudo pip install pyopenssl

原文: https://www.yuque.com/hxfqg9/misc/fucdy1