1108.1005天:Docker 部署bwapp

#每日三件事,第5天/2#

前言

Docker最大的一個特點就是應用系統和環境同時發佈,更不用提前爲應用系統部署環境。

按照以往的慣例,一個應用系統使用的環境是Linux+mysql+php+nginx+……你得先安裝Linux操作系統,然後再按要求部署mysql、PHP以及Nginx等等。關鍵是安裝的時候還得關注開發人員使用的是什麼版本,你的應用環境和開發人員的環境版本如果有差異的話,很有可能在部署過程中會出現意想不到的問題。

而Docker就是來解決這個問題的。

以往要想安裝個靶場,得照着說明一步一步來。好一點兒的靶場直接做成一個虛擬機,大概有5-10G的樣子,下載回來後有虛擬機就可以用了。如果網絡不好,或者是服務器在國外的話,僅一個下載就夠頭疼的了。

bwapp就是練習SQL注入特別好的一個靶場,關鍵是被做成了docker的鏡像。

1、下載bwapp

    docker pull raesene/bwapp

記不住這個名字也沒關係,搜索一樣可以用:

  docker search bwapp

然後再使用docker pull raesene/bwapp,把鏡像文件下載到本地。下載之後可以用查看:

   docker images

2、運行一個bwapp的容器

如果你使用linux或者windows的話,直接運行就可以。如果是Mac的話,最好先創建一個網絡,免得網絡有問題。

創建一個bridge網絡:

    docker network create -d bridge --subnet 192.168.10.0/24 --gateway 192.168.10.1 MyNet

-d:driver,默認的就是bridge,還有host,none之類的;

--subnet:寫清楚網卡所在的網段;

--gateway:就是網關的地址;

docker自己有DHCP和NAT,這樣啓動起來的容器可以直接和外面連通。

查看剛剛創建的網絡,其實是創建一個網卡MyNet,用這個網卡橋接容器的網卡,讓容器和宿主機甚至互聯網進行通信。Mac上沒有Docker0的網卡,和windows、linux不一樣。

運行bwapp容器:

docker run -dit --name bwapp01 --net MyNet -p 8888:80 image_id

-dit,d:是後臺運行;i:交互式;t:tty終端;

--name:給啓動的容器取個名字,不重複,好記就可以;

--net MyNet :容器的網卡和MyNet進行橋接;

-p: 就是宿主機的端口和容器的端口做個映射;

image_id:就是通過docker images看到的bwapp的id。

3、使用bwapp練習sql注入

用你的瀏覽器直接輸入http://localhost:8888/install.php就可以進入bwapp了。安裝完成後,登錄的用戶是bee,密碼是bug。

4、可能遇到的問題

在安裝bwapp的過程中,我遇到了宿主機ping不同容器,而容器能ping通宿主機的情況。在排錯過程中發現其它容器和bwapp也能互相ping通,問題很奇怪。

登錄到bwapp的容器內部(使用命令docker exec -ti bwapp01 /bin/bash),沒有防火牆之類的東西。

最後把其它容器都刪掉,然後重啓docker,問題解決。

很多時候,問題很奇怪的時候,嘗試從頭開始,把環境清理到最初的狀況。還不行的話,重啓也是一種方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章