docker的搭建

正常的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
2
3
4
5
6
# 安装docker
curl ``-``s https:``/``/``get.docker.com``/` `| sh
# 安装 docker compose 和git
apt install docker``-``compose git
# 下载
git clone https:``/``/``github.com``/``giantbranch``/``pwn_deploy_chroot.git

记得先给docker换源!

1
2
3
4
5
6
7
$vim /etc/docker/daemon.json
#输入以下内容
{

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

}

更改镜像后重启docker

1
#systemctl restart docker

使用

  1. 将所有pwn题目放入bin目录,可以1个,也可以n个(注意名字不带特殊字符,因为会将文件名作为linux用户名)
  2. python initialize.py
  3. docker-compose up –build -d
注:

1.此时可能会在第三步因为dockerfile里面的设置问题,导致源没换成功。此时就手动修改dockerfile内容,加入

1
2
3
4
5
RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list

RUN apt-get clean

RUN apt-get update

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
2
3
#查看当前运行的容器,找到对应的CONTAINER ID后进入
sudo docker ps
sudo docker exec -ti <CONTAINER ID> bash

查看容器的ip,用nc连

1
cat /etc/hosts

最后就是用你的exp进行测试。

docker镜像的保存和导出

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.列出所有容器

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

本文标题:docker的搭建

文章作者:zhz

发布时间:2020年03月22日 - 09:03

最后更新:2020年05月17日 - 17:05

原始链接:http://yoursite.com/2020/03/22/docker的搭建/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。