使用docker好方便好快!!
更新源也是台灣的!!!
除了沒有圖形介面外超棒
參考資料:[使用 Docker 運行 Kali Linux](http://chiehwenyang.logdown.com/posts/2016/09/04/using-the-docker-run-kali-linux)
### 搜尋與 Kali Linux 有關的 Docker Images
先確認我要的版本名稱 kali-last-release
```shell=
$ docker search kalilinux
kalilinux/kali-rolling Official Kali Linux Docker image (weekly sna?? 707
kalilinux/kali-bleeding-edge Same as kali-rolling with kali-bleeding-edge?? 50
kalilinux/kali-last-release Image built from the last snapshot of the of?? 44
kalilinux/kali-dev Image built from the kali-dev development re?? 8
kalilinux/kali-experimental Image built from the kali-dev + kali-experim?? 3
...
```
### 從 Docker Hub 上下載 Kali Linux 映像檔
```shell=
$ docker pull kalilinux/kali-last-release
```
### 查看目前系統裡的 Docker 映像檔
```shell=
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kalilinux/kali-last-release latest 867904864239 2 days ago 117MB
```
### 使用映像檔來啟動 Container
```shell=
$ docker run --hostname kali --name kalilinux -t -d kalilinux/kali-last-release
```
### 檢查 Container 是否已建立
```shell=
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1dd80a6b9aca kalilinux/kali-last-release "bash" 44 seconds ago Up 43 seconds kalilinux
```
### 進入 Container 的 Bash 環境
```shell=
$ docker exec -it kalilinux bash
root@kali:/#
```
若已建立過的話,指令可改這樣
```bash=
$ docker exec -it 867904864239c08730eda542701dcad5bce891be859b0eac234e5093e661629e /bin/bash
```
### 更新套件
```bash=
apt-get update && apt-get dist-upgrade -y && apt autoremove
```
### 安裝工具
依照需要自行調整
```bash=
apt-get install python2.7-dev python-pip git libssl-dev libffi-dev build-essential
pip install --upgrade pip
pip install --upgrade pwntools
```
### 小技巧
(不太懂原作者的意思...XD)
```shell=
$ docker exec -it kalilinux uname -a
$ docker exec -it kalilinux nmap
```
### 其他
|功能描述|指令|
|---|---|
|關閉container|`docker container stop <CONTAINER ID>`|
|強制關閉container|`docker container kill <CONTAINER ID>`|
|顯示容器 Log|`docker container logs <CONTAINER ID / CONTAINER NAMES>`|
|取得 Container ID|`docker ps -a`|
|進入Container的Bash|`docker exec -it <CONTAINER ID / CONTAINER NAMES> /bin/bash`|
docker stop 執行時,首先給容器發送一個 TERM 信號,讓容器做一些退出前必須做的保護性、安全性操作,然後讓容器自動停止運行,如果在一段時間內容器沒有停止運行,再執行 kill -9 指令,強制終止容器。
docker kill 執行時,不論容器是什麼狀態,在運行什麼程序,直接執行 kill -9 指令,強制終止容器。