原本想用docker復現一下vul的漏洞,
裝docker程序中遇到了很多問題,
昨天熬夜到凌晨三點都沒弄完,
中午又找了找原因,終于全部解決了,
小結一下,
0x01 鏡像
去官方下載了centos 8的鏡像,
https://www.centos.org/
0x02 在vmware中安裝centos系統
具體步驟參考https://blog.csdn.net/babyxue/article/details/80970526
在安裝程序中遇到第一個問題,卡在安裝界面
通過百度和嘗試,
發現在設定里的CD/DVD默認路徑錯誤,
修改為centos 8鏡像的路徑即可,

0x03 嘗試一鍵安裝docker 失敗
curl -s https://get.docker.com/ | sh
運行命令時,顯示沒有這個命令,
我嘗試去掉了| sh,發現回顯報錯了很多,最后一個error,失敗了,
0x04 嘗試下載到主機上再拖入centos系統 失敗
在我docker下載完成后,發現將docker沒辦法拖入centos系統
因為我還沒有安裝vmware tools
0x05 嘗試安裝vmware tools
具體步驟參考
https://jingyan.baidu.com/article/af9f5a2df3bce003150a4559.html
在安裝程序中發現沒有root權限,幾經周折,才得以解決,
'su -'切換至root權限,
'su your-name’切換回原賬號.
0x06 安裝docker-compose
解壓docker后,還要安裝docker-compose,
Docker-compose用于組合服務與內網,
有部分環境涉及到多個容器,且不同環境開啟的埠、目錄也不相同,
所以Vulhub選擇使用docker-compose做環境一鍵化管理工具,
用戶不再需要學習docker命令的各種引數與用法,
只需要簡單地執行 docker-compose up -d即可啟動容器,
由于centos 8并沒有自帶pip(自帶了python3)
而安裝docker-compose需要pip,所以目標又轉向了pip的安裝
curl -s https://bootstrap.pypa.io/get-pip.py | python3
安裝完pip后就可以進行docker-compose的安裝了,
pip install docker-compose
0x07 下載Vulhub
安裝完成docker和docker-compose后,拉取Vulhub到本地任意目錄即可
git clone https://github.com/vulhub/vulhub.git
0x08 意外發生,無法啟動docker
下載完Vulhub后我發現竟然沒法打開docker
查找了好久好久的資料,昨天晚上睡前都沒解決,凌晨三點實在熬不住了,
今天起來又好好看了看報錯,
發現了問題所在,一大長條的報錯中有這樣一句話
Error: Problem 1: problem with installed package podman-3.0.1-6.module_el8.4
即CentOS 8中安裝Docker出現和Podman沖突
我又去查閱Podman
兩種解決辦法
第一種洗掉Podman
查看是否安裝 Podman
rpm -q podman
podman-1.4.2-5.module_el8.1.0+237+63e26edc.x86_64
洗掉Podman
dnf remove podman
第二種嘗試在命令列中添加 ‘–allowerasing’ 來替換沖突的軟體包 或 ‘–skip-broken’ 來跳過無法安裝的軟體包 或 ‘–nobest’ 來不只使用最佳選擇的軟體包
yum erase podman buildah
yum install docker-ce docker-ce-cli containerd.io
最終解決沖突問題,
0x09 啟動docker
啟動docker:systemctl start docker
查看docker:ps -ef | grep docker
漏洞靶場的編譯和運行: docker-compose build 或 docker-compose up -d

docker-compose up -d運行后,會自動查找當前目錄下的組態檔,
如果組態檔中包含的環境均已經存在,則不會再次編譯;
如果組態檔中包含的環境不存在,則會自動進行編譯,
所以,其實 docker-compose up -d命令是包含了 docker-compose build的,
如果更新了組態檔,你可以手工執行 docker-compose build來重新編譯靶場環境,
0x0a 關閉docker
docker-compose down
關閉正在運行的容器
洗掉所有相關容器
移除NAT(docker-compose在運行的時候會創建一個NAT網段)
但不會移除編譯好的漏洞鏡像,
下次再執行 docker-compose up -d命令,
就不需要再次編譯相關鏡像了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291144.html
標籤:其他
下一篇:Docker安裝
