文章目录
一,docker
(1)基础概念
沙箱机制
- 1.沙箱是一个虚拟系统程序,沙箱提供的环境相对于每一个运行的程序都是独立的,而且不会对现有的系统产生影响.
- 2.沙箱具有非常良好的独立性、隔离性,所以能够搭建一些具有高风险的软件进行测试.
docker
一个开源的应用容器引擎,基于GO语言
- 作用:开发者打包他们的应用和依赖包到一个轻量级,可移植的容器中
- 优点
- ①消耗点
- ②启动快
(2)安装docker
#先下载python(最好先换源)
sudo apt install python3
#安装pip
sudo apt install python3-pip
#安装docker
sudo apt-get install docker.io
#创建软连接
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
#下载docker-compose
sudo apt install docker-compose
#开启docker
sudo systemctl start docker.service
sudo systemctl start docker.socket
(3)docker命令
3.1 关于镜像的操作
镜像的搜索
docker search XXXX
镜像下载
docker pull XXXX
查看本地镜像
docker images
删除本地镜像
docker rmi 镜像名
3.2 容器的基础操作
创建容器: docker run -itd --nane=指定容器的名称 使用的镜像名
-i:表示以交互模式运行容器
-d:表示后台运行容器,并返回容器ID
-t:为容器重新分配一个伪输入终端;
查看运行的容器
sudo docker ps
注意 同一个镜像可以assign到多个容器上
停止容器
docker stop 容器名/容器ID
重启容器
docker restart 容器名/容器ID
删除容器
docker rm 容器名/容器ID
3.3 容器的保存
进入容器
docker exec -it 容器名/容器ID /bin/bash
保存
对通过同一镜像创建的不同容器,操作之后,可以保存为一个新的镜像
3.4 对容器操作
------端口映射
创建一个有端口映射的容器
docker run -itd -p 宿主机端口:容器端口 镜像名
访问宿主机的90端口就是nginx喽
(4)使用docker-compose 编排镜像
docker 提供了一个命令行工具 docker-compose 帮助完成镜像的编排, 要使用 docker-compose , 需要先编写一个 docker-compose.yml
文件, yaml 是一种常用配置文件格
yml :是一个可读性高,用来表达数据序列的格式
文章
(5)更换docker源
由于本来的源太慢了。。。。。,使用阿里的加速源。【容器镜像服务】
- 登录之后,提供一个URL
配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://XXXXX.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
二,搭建靶机
两个开源的项目
【vulhub靶机说明】
# 进入某一个漏洞/环境的目录
cd flask/ssti
# 自动化编译环境
docker-compose build
# 启动整个环境
docker-compose up -d
#每个环境目录下都有相应的说明文件,请阅读该文件,进行漏洞/环境测试。
#测试完成后,删除整个环境
docker-compose down -v
【实列】
进入要搭建的环境的目录查看yml文件
使用docker-compose build
编译环境,然后启动环境
yang@yang-machine:~/baji/vulhub-master/joomla/CVE-2017-8917$ sudo docker-compose up -d
Pulling mysql (mysql:5)...
5: Pulling from library/mysql
8f91359f1fff: Pull complete
6bbb1c853362: Pull complete
e6e554c0af6f: Pull complete
f391c1a77330: Pull complete
414a8a88eabc: Pull complete
fee78658f4dd: Pull complete
9568f6bff01b: Pull complete
76041efb6f83: Pull complete
ea54dbd83183: Pull complete
566857d8f022: Pull complete
01c09495c6e7: Pull complete
Digest: sha256:f7985e36c668bb862a0e506f4ef9acdd1254cdf690469816f99633898895f7fa
Status: Downloaded newer image for mysql:5
Pulling web (vulhub/joomla:3.7.0)...
3.7.0: Pulling from vulhub/joomla
5e6ec7f28fb7: Pull complete
cf165947b5b7: Pull complete
7bd37682846d: Pull complete
99daf8e838e1: Pull complete
ae320713efba: Pull complete
ebcb99c48d8c: Pull complete
9867e71b4ab6: Pull complete
936eb418164a: Pull complete
bc298e7adaf7: Pull complete
ccd61b587bcd: Pull complete
b2d4b347f67c: Pull complete
56e9dde34152: Pull complete
9ad99b17eb78: Pull complete
f0b49b0a34a7: Pull complete
bc8d2ddd1ca2: Pull complete
cc87e0e6b730: Pull complete
80c164075256: Pull complete
1bb70ad75826: Pull complete
b30d9e1dab0d: Pull complete
c7e4f22b689f: Pull complete
5093ee2098f3: Pull complete
Digest: sha256:8b38262a5bfd3e8f56415e369c0970a736e31d1138fb9fe0343f88435d43574d
Status: Downloaded newer image for vulhub/joomla:3.7.0
Creating cve20178917_mysql_1 ...
Creating cve20178917_mysql_1 ... done
Creating cve20178917_web_1 ...
Creating cve20178917_web_1 ... done
yang@yang-machine:~/baji/vulhub-master/joomla/CVE-2017-8917$
查看是否成功启动
访问测试是否成功
测试完成后,删除整个环境
docker-compose down -v
sudo docker rmi 镜像ID