kali下對Docker的詳細安裝

語言: CN / TW / HK

映象下載、域名解析、時間同步請點選 阿里雲開源映象站

前言

Docker是滲透測試中必學不可的一個容器工具,在其中,我們能夠快速建立、執行、測試以及部署應用程式。如,我們對一些漏洞進行本地復現時,可以使用Docker快速搭建漏洞環境,完成復現學習。

Docker的安裝

1、Linux核心版本檢視

#安裝docker要求核心版本kerner>=3.10
#為此,先檢查當前Linux系統的核心版本
uname -a

2、更新apt源滿足下載要求

#新重寫sources.list中內容,一個個字母刪除太久了
cho > /etc/apt/sources.list
 
#進入sources.lis重新編輯apt源
vim /etc/apt/sources.list
 
#直接CV大法寫入下面的apt源
 
#阿里雲
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib 

3、進行系統或工具的更新

#進行系統或工具的更新(有丟丟就,先上把王者)
#注:當出現正在設定軟體包介面時,直接按tab+enter進行確認
apt-get update && apt-get upgrade && apt-get dist-upgrade
 
#禮貌性清除更新快取
apt-get clean

4、採用apt安裝Docker

#為什麼採用apt安裝?因為之後採用apt源安裝Docker的其他元件時,新元件與已安裝的Docker容器最為匹配。
apt-get install docker docker-compose
 
#或
apt-get install docker.io

file

5、檢驗Docker成功安裝

#啟動docker服務
service docker start
 
#列出docker現有映象
docker images
 
#執行hello-world映象
#但apt安裝的docker沒帶有hello-world預設映象呀,所以下面的命令不成功,它會幫你拉去該映象下來
docker run hello-world

file file

Docker的其他配置

1、配置阿里雲映象加速

Docker建議配備一個映象加速器來解決國內使用者訪問DockerHub緩慢的問題。此處筆者推薦使用阿里雲的映象加速器來優化,提升下載速度。

    注:配置映象加速器,僅針對Docker客戶端版本大於 1.10.0 的使用者
#阿里雲映象加速器獲取網址(需註冊):https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
 
#映象加速器網址寫入/etc/docker/daemon.json檔案(可能不存在)中
vim /etc/docker/daemon.json
 
#新建daemon.jsp檔案
touch /etc/docker/daemon.json
 
#寫入內容
{
	"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
 
#退出daemon.jsp,並重啟docker
ESC --> :wq!
systemctl restart docker

file file file file

2、設定Docker開機自啟

#設定docker開機自啟
systemctl enable docker

file

Docker的簡單使用

#筆者以拉取 CVE-2017-7504 的漏洞環境為例。
docker search testjboss    							#搜尋漏洞環境
docker pull testjboss/jboss							#拉取漏洞環境
docker run -d -p 80:8080 testjboss/jboss:latest		#根據testjboss/jboss映象建立並執行容器
ifconfig																						#檢視已執行容器ip
#kali中,使用瀏覽器訪問http://IP						#IP可為127.0.0.1
docker ps																						#檢視正在執行的容器
docker exec -it e8f4844aabc1 /bin/bash				#進入容器(id:e8f4844aabc1)
exit																								#退出容器到宿主機(容器不會停止執行)
docker stop 3b41c0c08430							#關閉容器(id唯一標識,建議使用id)

file file file file

Docker的常用命令

#系統命令
systemctl start docker				#啟動docker
systemctl stop docker				#停止docker
systemctl restart docker			#重啟docker
systemctl enable docker				#設定docker開機自啟
 
#基本命令
docker version						#檢視docker版本
docker info							#檢視docker詳細資訊
docker --help						#檢視docker命令
 
#映象命令
docker images						#檢視docker映象列表
docker images -a					#列出本地所有映象
docker images --digests				#顯示映象的摘要資訊
docker search redis					#從Docker Hub上查詢redis映象
docker pull redis					#從Docker Hub上下載redis映象
docker rmi 373f0984b070				#刪除IMAGE ID 為373f0984b070的映象
 
#執行命令
#-p 6379:6379	埠對映:前表示主機部分,後表示容器部分
#-d	在後臺執行容器(不進入終端)並列印容器ID/容器名
#--name myredis表示自定義容器名為myredis
docker run -d -p 6379:6379 --name myredis redis:latest		#根據映象建立並執行容器
 
#容器命令
docker container ls 或 docker ps				#檢視正在執行的容器
docker container ls -a 或 docker ps -a			#列出所有容器
docker container start 容器ID 或 容器名稱		#啟動容器
docker start 容器ID 或 容器名稱					#啟動容器
docker container stop 容器ID 或 容器名稱			#停止容器
docker stop 容器ID 或 容器名稱					#停止容器
docker container rm 容器ID 或 容器名稱			#刪除容器
docker rm 容器ID 或 容器名稱						#刪除容器
docker container logs -f 容器ID 或 容器名稱		#檢視容器日誌
docker exec -it name /bin/bash 					#進入name(容器名/id)中開啟互動式的終端,exit退出

docker --help中文譯解

Usage:
docker [OPTIONS] COMMAND [arg...]
       docker daemon [ --help | ... ]
       docker [ --help | -v | --version ]
A
self-sufficient runtime for containers.
 
Options:
  --config=~/.docker              Location of client config files  #客戶端配置檔案的位置
  -D, --debug=false               Enable debug mode  #啟用Debug除錯模式
  -H, --host=[]                   Daemon socket(s) to connect to  #守護程序的套接字(Socket)連線
  -h, --help=false                Print usage  #列印使用
  -l, --log-level=info            Set the logging level  #設定日誌級別
  --tls=false                     Use TLS; implied by--tlsverify  #
  --tlscacert=~/.docker/ca.pem    Trust certs signed only by this CA  #信任證書籤名CA
  --tlscert=~/.docker/cert.pem    Path to TLS certificate file  #TLS證書檔案路徑
  --tlskey=~/.docker/key.pem      Path to TLS key file  #TLS金鑰檔案路徑
  --tlsverify=false               Use TLS and verify the remote  #使用TLS驗證遠端
  -v, --version=false             Print version information and quit  #列印版本資訊並退出
 
Commands:
    attach    Attach to a running container  #當前shell下attach連線指定執行映象
    build     Build an image from a Dockerfile  #通過Dockerfile定製映象
    commit    Create a new image from a container's changes  #提交當前容器為新的映象
    cp    	  Copy files/folders from a container to a HOSTDIR or to STDOUT  #從容器中拷貝指定檔案或者目錄到宿主機中
    create    Create a new container  #建立一個新的容器,同run 但不啟動容器
    diff      Inspect changes on a container's filesystem  #檢視docker容器變化
    events    Get real time events from the server#從docker服務獲取容器實時事件
    exec      Run a command in a running container#在已存在的容器上執行命令
    export    Export a container's filesystem as a tar archive  #匯出容器的內容流作為一個tar歸檔檔案(對應import)
    history   Show the history of an image  #展示一個映象形成歷史
    images    List images  #列出系統當前映象
    import    Import the contents from a tarball to create a filesystem image  #從tar包中的內容建立一個新的檔案系統映像(對應export)
    info      Display system-wide information  #顯示系統相關資訊
    inspect   Return low-level information on a container or image  #檢視容器詳細資訊
    kill      Kill a running container  #kill指定docker容器
    load      Load an image from a tar archive or STDIN  #從一個tar包中載入一個映象(對應save)
    login     Register or log in to a Docker registry#註冊或者登陸一個docker源伺服器
    logout    Log out from a Docker registry  #從當前Docker registry退出
    logs   	  Fetch the logs of a container  #輸出當前容器日誌資訊
    pause     Pause all processes within a container#暫停容器
    port      List port mappings or a specific mapping for the CONTAINER  #檢視對映埠對應的容器內部源埠
    ps    	  List containers  #列出容器列表
    pull      Pull an image or a repository from a registry  #從docker映象源伺服器拉取指定映象或者庫映象
    push      Push an image or a repository to a registry  #推送指定映象或者庫映象至docker源伺服器
    rename    Rename a container  #重新命名容器
    restart   Restart a running container  #重啟執行的容器
    rm    	  Remove one or more containers  #移除一個或者多個容器
    rmi    	  Remove one or more images  #移除一個或多個映象(無容器使用該映象才可以刪除,否則需要刪除相關容器才可以繼續或者-f強制刪除)
    run   	  Run a command in a new container  #建立一個新的容器並執行一個命令
    save      Save an image(s) to a tar archive#儲存一個映象為一個tar包(對應load)
    search    Search the Docker Hub for images  #在docker
hub中搜索映象
    start     Start one or more stopped containers#啟動容器
    stats     Display a live stream of container(s) resource usage statistics  #統計容器使用資源
    stop      Stop a running container  #停止容器
    tag       Tag an image into a repository  #給源中映象打標籤
    top       Display the running processes of a container #檢視容器中執行的程序資訊
    unpause   Unpause all processes within a container  #取消暫停容器
    version   Show the Docker version information#檢視容器版本號
    wait      Block until a container stops, then print its exit code  #擷取容器停止時的退出狀態值

本文轉自:https://blog.csdn.net/weixin_46318141/article/details/121168812