配置自定義docker鏡像 (AWVS)


 
 
以安裝awvs的ubuntu鏡像為例
 
docker pull ubuntu   // 獲取ubuntu鏡像

 

docker run -it --dns 223.5.5.5  -v /home/devsecops/devsecops/tools-share/:/opt/share/ ubuntu /bin/bash  // 映射相關工具到容器中,配置容器后 通過 docker commit 生成新的鏡像
// 在容器中執行apt-get update ,可能會缺少庫的問題
apt-get update

 

 
庫還是不出意外的少了,一個個安裝上, 安裝庫后安裝awvs
 
emmm   安裝完之后,由於沒有配置端口映射,宿主機根本訪問不到,搜索很多資料均沒有相關的說明,那豈不是說... 我得重新來過?
同時確認了兩個個問題
        問題1:(在容器中無法使用chattr),解決如下 (需要重新啟動容器,看來重新來過勢不可擋?):
問題2 : systemctl命令無法正常使用,報錯:
    
         解決: su acunetix    到目錄下 sh start.sh

 

emm,為了不浪費之前已經進行的工作,決定先試試 docker commit  生成一個中間鏡像試試

docker commit -m "awvs test " -a "test" f75a77499f1b  awvs-test:0.5

  

在生成的鏡像中,執行命令如下:
docker run --cap-add LINUX_IMMUTABLE -it  -p 13443:13443 awvs-test:0.5 /bin/bash

 

再次docker commit 生成我們的最后的鏡像,順便看看服務啟動的問題,需不需要我們再次考慮
 
            ------>  結果在預計之內  不可能解決運行的問題。
可以看到所有的容器都有一個COMMAND屬性,代碼容器初始執行的命令
同時 docker diff 容器   可以查看容器與鏡像之間的文件差異, 所以我們可以推測,在生成鏡像的時候文件和執行容器時最后的命令會打包到鏡像中,其他的運行狀態並不會影響鏡像。
 
PS:  其實也可以寫個dockerfile注意一下 ENTRYPOINT, 填寫相應的bash腳本就行,生成一個鏡像

 

所以我們再次生成一個可運行的鏡像,啟動容器將需要執行命令帶入
docker run -i -p 13443:13443 -u acunetix awvs-test:0.7 /bin/bash -c "/bin/sh /home/acunetix/.acunetix_trial/start.sh"

docker commit -m "awvs test " -a "test" 07edab69687a  awvs-test:0.8

  

大功告成:
 PS: 裝了一堆沒有用的庫,導致鏡像有點大,大於1G


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM