網站首頁 編程語言 正文
0x00 前言
Docker是滲透測試中必學不可的一個容器工具,在其中,我們能夠快速創建、運行、測試以及部署應用程序。如,我們對一些漏洞進行本地復現時,可以使用Docker快速搭建漏洞環境,完成復現學習。
注:本教程僅供學習參考,請勿用在非法途徑上,違者后果自負,與筆者無關。
0x01 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源
3、進行系統或工具的更新
#其他apt源
#此處,筆者僅添加中科達和阿里的,其他注釋掉
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
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
#清華大學
#deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#浙大
#deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
#deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
#東軟大學
#deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contribp.kali.org/kali kali-rolling main non-free contrib
#重慶大學
#deb http://http.kali.org/kali kali-rolling main non-free contrib
#deb-src http://http.kali.org/kali kali-rolling main non-free contrib
4、采用apt安裝Docker
#進行系統或工具的更新(有丟丟就,先上把王者)
#注:當出現正在設定軟件包界面時,直接按tab+enter進行確認
apt-get update && apt-get upgrade && apt-get dist-upgrade
#禮貌性清除更新緩存
apt-get clean
5、檢驗Docker成功安裝
#啟動docker服務
service docker start
#列出docker現有鏡像
docker images
#運行hello-world鏡像
#但apt安裝的docker沒帶有hello-world默認鏡像呀,所以下面的命令不成功,它會幫你拉去該鏡像下來
docker run hello-world
0x02 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
#其他公開Docker鏡像加速源(不需注冊)
https://docker.mirrors.ustc.edu.cn #中科大
http://hub-mirror.c.163.com/ #網易
2、設置Docker開機自啟
#設置docker開機自啟
systemctl enable docker
0x03 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)
0x04 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退出
0x05 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 #截取容器停止時的退出狀態值
0x06 后記
通過查找資料,對Docker的理解又加深了,我心甚慰,喜歡這樣的自己。 --涂寐
0x07 知識鏈接
kali安裝docker和portainer的配置方法
原文鏈接:https://blog.csdn.net/weixin_46318141/article/details/121168812
相關推薦
- 2023-07-28 el-table 鼠標懸浮時背景色改變
- 2022-04-27 前端實現滑動按鈕AJAX與后端交互的示例代碼_AJAX相關
- 2022-01-06 Spring Aware接口詳解
- 2022-12-06 React源碼分析之useCallback與useMemo及useContext詳解_React
- 2023-10-17 uniapp通過功能性編碼跳轉到原生的app頁面
- 2023-07-30 el-table自定義合并行或列
- 2022-06-19 WPF項目在設計界面調用后臺代碼_實用技巧
- 2022-09-07 Golang必知必會之Go?Mod命令詳解_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支