Docker 命令使用說明及常用組合命令示例
Docker 命令使用說明
容器生命周期管理
docker run - 創(chuàng)建并啟動容器
# 基本語法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] # 常用選項 -d # 后臺運行容器 -it # 交互式終端 --name <name> # 指定容器名稱 -p <host>:<container> # 端口映射 -v <host>:<container> # 目錄掛載 -e <key>=<value> # 設置環(huán)境變量 --rm # 容器停止后自動刪除 --network <network> # 指定網(wǎng)絡 --restart <policy> # 重啟策略 (no/on-failure/always/unless-stopped) --cpus <num> # 限制CPU數(shù)量 --memory <size> # 限制內(nèi)存大小 -w <path> # 工作目錄 # 示例 docker run -d --name nginx -p 80:80 nginx docker run -it --rm ubuntu bash docker run -d -v /host/data:/container/data mysql docker run -d --restart=always --name web nginx
docker start - 啟動已停止的容器
# 基本語法 docker start [OPTIONS] CONTAINER [CONTAINER...] # 常用選項 -a, --attach # 附加到容器的標準輸出 -i, --interactive # 附加到容器的標準輸入 # 示例 docker start nginx docker start -ai my-container docker start container1 container2 container3
docker stop - 停止運行中的容器
# 基本語法 docker stop [OPTIONS] CONTAINER [CONTAINER...] # 常用選項 -t, --time <seconds> # 等待多少秒后強制停止 (默認10秒) # 示例 docker stop nginx docker stop -t 30 my-container docker stop $(docker ps -q) # 停止所有運行中的容器
docker restart - 重啟容器
# 基本語法 docker restart [OPTIONS] CONTAINER [CONTAINER...] # 常用選項 -t, --time <seconds> # 等待多少秒后強制停止 # 示例 docker restart nginx docker restart -t 60 my-container
docker kill - 強制停止容器
# 基本語法 docker kill [OPTIONS] CONTAINER [CONTAINER...] # 常用選項 -s, --signal <signal> # 發(fā)送指定信號 (默認SIGKILL) # 示例 docker kill nginx docker kill -s SIGTERM my-container
docker rm - 刪除容器
# 基本語法 docker rm [OPTIONS] CONTAINER [CONTAINER...] # 常用選項 -f, --force # 強制刪除運行中的容器 -v, --volumes # 刪除關聯(lián)的匿名卷 # 示例 docker rm nginx docker rm -f my-container docker rm -v container-with-volumes docker rm $(docker ps -aq) # 刪除所有已停止的容器
docker pause/unpause - 暫停/恢復容器
# 暫停容器中的所有進程 docker pause CONTAINER [CONTAINER...] # 恢復容器中的所有進程 docker unpause CONTAINER [CONTAINER...] # 示例 docker pause nginx docker unpause nginx
容器操作
docker ps - 查看容器列表
# 基本語法
docker ps [OPTIONS]
# 常用選項
-a, --all # 顯示所有容器(包括已停止的)
-q, --quiet # 只顯示容器ID
-s, --size # 顯示容器大小
-f, --filter <filter> # 過濾輸出
--format <template> # 格式化輸出
-n, --last <num> # 顯示最近創(chuàng)建的n個容器
# 示例
docker ps # 查看運行中的容器
docker ps -a # 查看所有容器
docker ps -q # 只顯示容器ID
docker ps -a -f status=exited # 查看已停止的容器
docker ps -a -f name=nginx # 按名稱過濾
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
docker ps -n 5 # 顯示最近5個容器docker exec - 在運行中的容器執(zhí)行命令
# 基本語法 docker exec [OPTIONS] CONTAINER COMMAND [ARG...] # 常用選項 -d, --detach # 后臺運行命令 -i, --interactive # 保持標準輸入打開 -t, --tty # 分配偽終端 -e, --env <key>=<val> # 設置環(huán)境變量 -u, --user <user> # 指定用戶 -w, --workdir <path> # 指定工作目錄 # 示例 docker exec -it nginx bash docker exec -it nginx sh docker exec nginx ls /etc docker exec -d nginx touch /tmp/test docker exec -u root nginx whoami docker exec -w /var/log nginx ls docker exec nginx cat /etc/nginx/nginx.conf
docker logs - 查看容器日志
# 基本語法 docker logs [OPTIONS] CONTAINER # 常用選項 -f, --follow # 實時跟蹤日志輸出 -t, --timestamps # 顯示時間戳 --tail <num> # 顯示最后N行日志 --since <timestamp> # 顯示指定時間之后的日志 --until <timestamp> # 顯示指定時間之前的日志 # 示例 docker logs nginx docker logs -f nginx # 實時查看日志 docker logs -f --tail 100 nginx # 查看最后100行并跟蹤 docker logs -t nginx # 顯示時間戳 docker logs --since 2024-01-01 nginx # 查看指定日期后的日志 docker logs --since 30m nginx # 查看最近30分鐘的日志 docker logs --tail 50 -f nginx # 查看最后50行并持續(xù)跟蹤
docker attach - 附加到運行中的容器
# 基本語法 docker attach [OPTIONS] CONTAINER # 常用選項 --no-stdin # 不附加標準輸入 --sig-proxy # 代理所有接收到的信號到進程(默認true) # 示例 docker attach nginx docker attach --no-stdin nginx # 注意: Ctrl+C 會停止容器,使用 Ctrl+P Ctrl+Q 可以安全退出
容器信息查看
docker inspect - 查看容器/鏡像詳細信息
# 基本語法
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
# 常用選項
-f, --format <template> # 使用Go模板格式化輸出
-s, --size # 顯示總文件大小(僅容器)
--type <type> # 指定類型 (container|image)
# 示例
docker inspect nginx
docker inspect -s nginx
docker inspect --format '{{.State.Status}}' nginx
docker inspect --format '{{.NetworkSettings.IPAddress}}' nginx
docker inspect --format '{{json .Config}}' nginx | jq
docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx
docker inspect --format '{{.HostConfig.Memory}}' nginxdocker top - 查看容器中運行的進程
# 基本語法 docker top CONTAINER [ps OPTIONS] # 示例 docker top nginx docker top nginx aux docker top nginx -eo pid,comm
docker stats - 查看容器資源使用統(tǒng)計
# 基本語法
docker stats [OPTIONS] [CONTAINER...]
# 常用選項
-a, --all # 顯示所有容器(默認只顯示運行中的)
--no-stream # 只顯示一次,不持續(xù)刷新
--no-trunc # 不截斷輸出
--format <template> # 格式化輸出
# 示例
docker stats
docker stats nginx
docker stats --no-stream
docker stats -a
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"docker port - 查看容器端口映射
# 基本語法 docker port CONTAINER [PRIVATE_PORT[/PROTO]] # 示例 docker port nginx docker port nginx 80 docker port nginx 80/tcp
docker diff - 查看容器文件系統(tǒng)變化
# 基本語法 docker diff CONTAINER # 輸出說明 # A - 文件或目錄被添加 # D - 文件或目錄被刪除 # C - 文件或目錄被修改 # 示例 docker diff nginx
容器與主機間的數(shù)據(jù)操作
docker cp - 容器與主機間復制文件
# 基本語法 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH # 從容器復制到主機 docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH # 從主機復制到容器 # 常用選項 -a, --archive # 歸檔模式(復制所有uid/gid信息) -L, --follow-link # 跟隨符號鏈接 # 示例 docker cp nginx:/etc/nginx/nginx.conf ./nginx.conf docker cp ./config.json nginx:/app/config.json docker cp nginx:/var/log/ ./logs/ docker cp -a ./data/ nginx:/app/data/
docker export - 導出容器文件系統(tǒng)
# 基本語法 docker export [OPTIONS] CONTAINER # 常用選項 -o, --output <file> # 寫入到文件而不是標準輸出 # 示例 docker export nginx > nginx.tar docker export -o nginx.tar nginx
docker import - 從歸檔文件創(chuàng)建鏡像
# 基本語法 docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] # 常用選項 -c, --change <list> # 應用Dockerfile指令 -m, --message <msg> # 設置提交信息 # 示例 docker import nginx.tar my-nginx:latest cat nginx.tar | docker import - my-nginx:latest docker import -m "Imported from backup" nginx.tar my-nginx:v1
鏡像相關命令
docker history - 查看鏡像歷史
# 基本語法
docker history [OPTIONS] IMAGE
# 常用選項
-H, --human # 以人類可讀格式顯示大小(默認true)
--no-trunc # 不截斷輸出
-q, --quiet # 只顯示鏡像ID
--format <template> # 格式化輸出
# 示例
docker history nginx
docker history --no-trunc nginx
docker history -q nginx
docker history --format "table {{.ID}}\t{{.CreatedBy}}\t{{.Size}}" nginxdocker images - 查看鏡像列表
# 基本語法
docker images [OPTIONS] [REPOSITORY[:TAG]]
# 常用選項
-a, --all # 顯示所有鏡像(包括中間層)
-q, --quiet # 只顯示鏡像ID
-f, --filter <filter> # 過濾輸出
--format <template> # 格式化輸出
--digests # 顯示摘要信息
--no-trunc # 不截斷輸出
# 示例
docker images
docker images -a
docker images -q
docker images -f dangling=true # 顯示懸空鏡像
docker images -f reference='nginx:*' # 過濾nginx鏡像
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"docker pull - 拉取鏡像
# 基本語法 docker pull [OPTIONS] NAME[:TAG|@DIGEST] # 常用選項 -a, --all-tags # 拉取所有標簽的鏡像 -q, --quiet # 靜默模式 --platform <platform> # 指定平臺 # 示例 docker pull nginx docker pull nginx:1.21 docker pull nginx:latest docker pull -a nginx docker pull --platform linux/amd64 nginx
docker push - 推送鏡像
# 基本語法 docker push [OPTIONS] NAME[:TAG] # 常用選項 -a, --all-tags # 推送所有標簽 -q, --quiet # 靜默模式 # 示例 docker push myregistry/nginx:latest docker push -a myregistry/nginx
docker rmi - 刪除鏡像
# 基本語法 docker rmi [OPTIONS] IMAGE [IMAGE...] # 常用選項 -f, --force # 強制刪除 --no-prune # 不刪除未標記的父鏡像 # 示例 docker rmi nginx docker rmi -f nginx docker rmi $(docker images -q) # 刪除所有鏡像 docker rmi $(docker images -f dangling=true -q) # 刪除懸空鏡像
docker tag - 給鏡像打標簽
# 基本語法 docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] # 示例 docker tag nginx:latest myregistry/nginx:v1 docker tag abc123 mynginx:latest
docker save - 保存鏡像到tar文件
# 基本語法 docker save [OPTIONS] IMAGE [IMAGE...] # 常用選項 -o, --output <file> # 寫入到文件 # 示例 docker save nginx > nginx.tar docker save -o nginx.tar nginx docker save -o images.tar nginx:latest mysql:8.0
docker load - 從tar文件加載鏡像
# 基本語法 docker load [OPTIONS] # 常用選項 -i, --input <file> # 從文件讀取 -q, --quiet # 靜默模式 # 示例 docker load < nginx.tar docker load -i nginx.tar
docker commit - 從容器創(chuàng)建新鏡像
# 基本語法 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 常用選項 -a, --author <author> # 作者信息 -m, --message <msg> # 提交信息 -c, --change <list> # 應用Dockerfile指令 -p, --pause # 提交時暫停容器(默認true) # 示例 docker commit nginx my-nginx:v1 docker commit -m "Added config" -a "Author" nginx my-nginx:v2 docker commit -c "ENV DEBUG=true" nginx my-nginx:debug
docker build - 從Dockerfile構(gòu)建鏡像
# 基本語法 docker build [OPTIONS] PATH | URL | - # 常用選項 -t, --tag <name:tag> # 指定鏡像名稱和標簽 -f, --file <file> # 指定Dockerfile路徑 --build-arg <key=val> # 設置構(gòu)建參數(shù) --no-cache # 不使用緩存 --pull # 總是嘗試拉取新版本基礎鏡像 --target <stage> # 構(gòu)建多階段的指定階段 --platform <platform> # 指定平臺 # 示例 docker build -t mynginx:v1 . docker build -t mynginx:v1 -f Dockerfile.prod . docker build --build-arg VERSION=1.0 -t myapp:1.0 . docker build --no-cache -t myapp:latest . docker build --target production -t myapp:prod .
網(wǎng)絡相關命令
docker network ls - 查看網(wǎng)絡列表
docker network ls docker network ls -q docker network ls -f driver=bridge
docker network inspect - 查看網(wǎng)絡詳情
docker network inspect bridge
docker network inspect --format '{{json .IPAM.Config}}' bridge
docker network create - 創(chuàng)建網(wǎng)絡
docker network create mynetwork docker network create --driver bridge --subnet 172.20.0.0/16 mynetwork
docker network connect/disconnect - 連接/斷開容器網(wǎng)絡
docker network connect mynetwork nginx docker network disconnect mynetwork nginx
docker network rm - 刪除網(wǎng)絡
docker network rm mynetwork docker network prune # 刪除未使用的網(wǎng)絡
數(shù)據(jù)卷相關命令
docker volume ls - 查看卷列表
docker volume ls docker volume ls -q docker volume ls -f dangling=true
docker volume inspect - 查看卷詳情
docker volume inspect myvolume
docker volume inspect --format '{{.Mountpoint}}' myvolume
docker volume create - 創(chuàng)建卷
docker volume create myvolume docker volume create --driver local myvolume
docker volume rm - 刪除卷
docker volume rm myvolume docker volume prune # 刪除未使用的卷
系統(tǒng)相關命令
docker info - 查看Docker系統(tǒng)信息
docker info
docker info --format '{{.ServerVersion}}'
docker version - 查看Docker版本
docker version
docker version --format '{{.Server.Version}}'
docker system df - 查看Docker磁盤使用情況
docker system df docker system df -v # 詳細信息
docker system prune - 清理未使用的資源
docker system prune # 清理懸空資源 docker system prune -a # 清理所有未使用的資源 docker system prune --volumes # 同時清理卷 docker system prune -f # 不提示確認
docker events - 實時查看Docker事件
docker events docker events --since 30m docker events --filter event=start docker events --filter type=container
常用組合命令示例
# 停止并刪除所有容器
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
# 刪除所有懸空鏡像
docker rmi $(docker images -f dangling=true -q)
# 查看容器IP地址
docker inspect --format '{{.NetworkSettings.IPAddress}}' nginx
# 查看容器端口映射
docker inspect --format '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' nginx
# 進入容器并執(zhí)行多條命令
docker exec -it nginx sh -c "cd /etc/nginx && cat nginx.conf"
# 批量刪除退出狀態(tài)的容器
docker rm $(docker ps -a -f status=exited -q)
# 查看容器占用的磁盤空間
docker ps -as
# 實時監(jiān)控所有容器資源使用
docker stats --all --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"命令速查表
| 命令 | 說明 | 常用參數(shù) |
|---|---|---|
docker run | 創(chuàng)建并啟動容器 | -d -it --name -p -v -e --rm |
docker start | 啟動容器 | -ai |
docker stop | 停止容器 | -t |
docker restart | 重啟容器 | -t |
docker rm | 刪除容器 | -f -v |
docker ps | 查看容器 | -a -q -s -f |
docker exec | 執(zhí)行命令 | -it -d -u -w |
docker logs | 查看日志 | -f -t --tail --since |
docker inspect | 查看詳情 | -f -s |
docker stats | 查看統(tǒng)計 | -a --no-stream |
docker cp | 復制文件 | -a |
docker history | 查看鏡像歷史 | --no-trunc -q |
docker images | 查看鏡像 | -a -q -f |
docker pull | 拉取鏡像 | -a |
docker rmi | 刪除鏡像 | -f |
docker build | 構(gòu)建鏡像 | -t -f --build-arg --no-cache |
到此這篇關于Docker 命令使用說明的文章就介紹到這了,更多相關docker命令使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決docker run 或者 docker restart 啟動鏡像就自動退出
這篇文章主要介紹了解決docker run 或者 docker restart 啟動鏡像就自動退出的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Docker使用Git實現(xiàn)Jenkins發(fā)布、測試項目的詳細流程
這篇文章主要介紹了Docker使用Git實現(xiàn)Jenkins發(fā)布、測試項目的詳細流程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
數(shù)據(jù)卷(Data Volumes)及dockefile詳解
在生產(chǎn)環(huán)境中使用Docker,往往需要對數(shù)據(jù)進行持久化,或者需要在多個容器之間進行數(shù)據(jù)共享,這必然涉及容器的數(shù)據(jù)管理操作,今天給大家介紹下數(shù)據(jù)卷(Data Volumes)及dockefile的相關知識,感興趣的朋友一起看看吧2023-01-01
Dockerfile的CMD與ENTRYPOINT的區(qū)別
CMD和ENTRYPOINT的區(qū)別在于CMD提供默認的執(zhí)行指令,而ENTRYPOINT定義容器啟動時運行的命令,下面就來詳細的介紹一下這兩者的區(qū)別,具有一定的參考價值,感興趣的可以了解一下2024-12-12
Docker環(huán)境搭建Jenkins在構(gòu)建任務時控制臺日志出現(xiàn)中文亂碼的問題
這篇文章主要介紹了Docker環(huán)境搭建Jenkins在構(gòu)建任務時控制臺日志出現(xiàn)中文亂碼的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境的詳細教程
K8S全稱是Kubernetes,是一個全新的基于容器技術的分布式架構(gòu)領先方案,這篇文章主要介紹了基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境(環(huán)境搭建篇),對docker K8S持續(xù)集成交付環(huán)境相關知識感興趣的朋友一起看看吧2021-05-05
docker 使用CMD或者ENTRYPOINT命令同時啟動多個服務
這篇文章主要介紹了docker 使用CMD或者ENTRYPOINT命令同時啟動多個服務,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11

