《11招玩轉網絡安全》之第一招:Docker For Docker
很幸運,Docker已經加入到了Debian的官方源中了。可以使用apt-get安裝Docker。首先,使用163的鏡像替代默認的官方鏡像(基於Docker使用加速器的同樣理由),163鏡像源的配置文件163.list如下:
deb http://mirrors.163.com/debian/ jessie mainnon-free contrib
deb http://mirrors.163.com/debian/ jessie-updatesmain non-free contrib
deb-src http://mirrors.163.com/debian/ jessie mainnon-free contrib
deb-src http://mirrors.163.com/debian/jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/jessie/updates main non-free contrib
1、首先將163.list拷貝到/etc/apt/sources.list.d/目錄下,然後將系統默認的更新源註釋掉。執行命令:
su
cp 163.list /etc/apt/sources.list.d/
sed -i ‘s/^/#/g’ /etc/apt/sources.list
2、測試一下執行結果,如圖1-56所示。
l 圖1-56 修改debian軟件源
3、其中jessie-backports main就是Docker的位置。修改軟件源後,更新軟件園,安裝Docker,執行命令:
apt-get update
apt-get install docker-io
執行結果如圖1-57所示。
l 圖1-57 安裝Docker For Linux
4、Docker For Linux安裝完畢,下面開始給Docker配置加速器,還是使用剛才在Windows下獲取的Daocloud加速器。執行命令:echo "DOCKER_OPTS=\"$DOCKER_OPTS --registry-mirror=http://xxx.m.daocloud.io\"">> /etc/default/docker
Docker For Linux配置完畢,可以開始使用了。
Docker使用
在終端(Windows的終端是cmd.exe和ConEmu,Linux的終端是Terminal)中執行docker –help,可以查看Docker的所有命令,執行結果如圖1-58所示。
l 圖1-58 docker help
這裏只說明最常用的幾個命令,如下所示。
- docker search 從鏡像源搜索軟件
- docker pull 從鏡像源拉取軟件
- docker run 運行鏡像為容器
- docker ps 顯示容器列表
- docker images 顯示鏡像列表
- docker start 啟動容器
- docker stop 停止運行中的容器
- docker rm 刪除容器
- docker rmi 刪除鏡像
基本上熟悉這幾個命令就可以使用Docker了。下面來以Kali來測試一下。雖然在選擇Linux系統時選擇了Debian Linux,但Kali在某些方面的確要比Debian方便很多。使用VMwareWorkstation創建Kali虛擬機是一個辦法,使用Docker創建Kali容器同樣也挺好用。首先搜索可用的Kali鏡像。執行命令:docker search kali
執行結果如圖1-59所示。
l 圖1-59 搜索docker 鏡像
可用的鏡像很多,選擇自帶metasploit的鏡像linuxkonsult/kali-metasploit。將docker鏡像pull到本地,執行命令:docker pull linuxkonsult/kali-metasploit
執行結果如圖1-60所示。
l 圖1-60 docker pull
這個鏡像比較大,下載可能需要點時間。如果配置好了加速器,速度還勉強可以接受。運行命令docker images、docker ps和docker ps -a分別查看當前鏡像、當前運行容器和當前所有容器,如圖1-61所示。
l 圖1-61 鏡像和容器列表
當前只有鏡像沒有容器。可以用dockerrun 命令,暫時的使用鏡像裏的程序,如圖1-62所示。
l 圖1-62 docker run
這裏的-it選項意思是打開交互式環境接口,--rm選項意思是退出後就刪除這個容器。這個命令創建了一個臨時容器(沒指定容器名),並運行了容器中的python程序。以同樣的方法,也可以打開kali容器中的msfconsole程序。
用docker run 以後臺的方式運行kali linux。這種方式就有點類似與VMware虛擬機了,只是沒有圖形界面,如圖1-63所示。
l 圖1-63 後臺運行容器
這裏的-d參數指定後臺運行,--name指定了容器的名字,-p參數相當於端口映射,意思是把容器上的22端口映射到主機的22端口上(雖然容器上端口不一定打開了)。查看一下本地的22端口,如圖1-64所示。
l 圖1-64 docker端口映射
當容器使用完畢後,可以用dockerstop關閉容器。下次使用時則用dockerstart啟動容器,如圖1-65所示。
l 圖1-65 打開、關閉容器
如果覺得這個容器、鏡像不符合要求,可以使用docker rm和docker rmi命令刪除容器和鏡像。刪除容器時必須要先關閉容器,刪除鏡像時要先刪除根據鏡像生成的容器,如圖1-66所示。
l 圖1-66 刪除容器、鏡像
Docker使用簡單方便,占用資源比VMware要小很多。除了不能創建Windows容器外,完全可以作為VMware的替代品。如果實在不習慣Docker命令模式的,也有Docker GUI程序可供使用。
有興趣的歡迎一起讀這本書《11招玩轉網絡安全——用Python,更安全》
《11招玩轉網絡安全》之第一招:Docker For Docker