文章目錄
一,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