Docker常用命令介紹

Docker常用命令

1、本地鏡像管理

save 命令

將一個或多個 Docker 鏡像保存到一個 tar 歸檔文件中,以便在其他環境中分發或備份。

# 語法:docker save [OPTIONS] IMAGE [IMAGE...]# 保存單個鏡像到文件
docker save -o myimage.tar myimage:latest# 保存多個鏡像到同一個文件
docker save -o multiple_images.tar image1:latest image2:latest# 注意:
# 1、保存鏡像時,會包含鏡像的所有層,因此生成的 tar 文件可能會很大。
# 2、如果保存多個鏡像到同一個文件中,使用 docker load 命令時會加載所有包含的鏡像。
# 3、為了減少文件大小,可以在保存前使用 docker image prune 命令清理未使用的鏡像和層。

load 命令

用于從由 docker save 命令生成的 tar 文件中加載 Docker 鏡像。

# 語法:docker load [OPTIONS]# 從文件加載鏡像
docker load -i myimage.tar# 從標準輸入加載鏡像
cat myimage.tar | docker load# 參數:
# -i, --input: 指定輸入文件的路徑
# -q, --quiet: 安靜模式,減少輸出信息

build 命令

用于從 Dockerfile 構建 Docker 鏡像。

docker build 命令通過讀取 Dockerfile 中定義的指令,逐步構建鏡像,并將最終結果保存到本地鏡像庫中。

# 語法:docker build [OPTIONS] PATH | URL | -

常用參數

  • PATH: 包含 Dockerfile 的目錄路徑或 .(當前目錄)
  • URL: 指向包含 Dockerfile 的遠程存儲庫地址(如 Git 倉庫)
  • -: 從標準輸入讀取 Dockerfile

常用選項

  • -t, --tag: 為構建的鏡像指定名稱和標簽
  • -f, --file: 指定 Dockerfile 的路徑(默認是 PATH 下的 Dockerfile)
  • –build-arg: 設置構建參數
  • –no-cache: 不使用緩存層構建鏡像
  • –rm: 構建成功后刪除中間容器(默認開啟)
  • –force-rm: 無論構建成功與否,一律刪除中間容器
  • –pull: 始終嘗試從注冊表拉取最新的基礎鏡像

更多選項

  • --build-arg=[]: 設置構建鏡像時的變量
  • --cpu-shares: 設置 CPU 使用權重
  • -f: 指定 Dockerfile 的路徑
  • --force-rm: 強制在構建過程中刪除中間容器
  • --isolation: 使用指定的容器隔離技術
  • --label=[]: 設置鏡像的元數據
  • -m: 設置內存的最大值
  • --memory-swap: 設置交換空間的最大值(內存 + 交換空間),-1 表示不限制交換空間
  • --no-cache: 構建鏡像時不使用緩存
  • --shm-size: 設置 /dev/shm 的大小,默認值為 64M
  • --ulimit: 設置 Ulimit 配置
  • --network: 在構建期間設置 RUN 指令的網絡模式,默認值為 default

其它命令

  • docker images 命令用于列出本地的 Docker 鏡像。

2、容器生命周期管理

run 命令

docker run 命令用于創建并啟動一個新的容器。

# 語法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用參數

  • -d: 后臺運行容器并返回容器 ID。
  • -it: 交互式運行容器,分配一個偽終端。
  • --name: 給容器指定一個名稱。
  • -p: 端口映射,格式為 host_port:container_port
  • -v: 掛載卷,格式為 host_dir:container_dir
  • --rm: 容器停止后自動刪除容器。
  • --env-e: 設置環境變量。
  • --network: 指定容器的網絡模式。
  • --restart: 容器的重啟策略(如 noon-failurealwaysunless-stopped)。
  • -u: 指定用戶。

簡單示例

# 1. 基本使用
docker run ubuntu # 拉取 ubuntu 鏡像并在前臺啟動一個容器。# 2. 后臺運行容器
docker run -d ubuntu # 在后臺運行 ubuntu 容器并返回容器 ID。# 3. 交互式運行并分配終端
docker run -it ubuntu /bin/bash # 以交互模式運行 ubuntu 容器,并啟動一個 Bash shell。# 4. 指定容器名稱
docker run --name my_container ubuntu # 運行一個 ubuntu 容器,并將其命名為 my_container。# 5. 端口映射
docker run -p 8080:80 nginx # 將本地主機的 8080 端口映射到容器內的 80 端口,運行 nginx 容器。# 6. 掛載卷
docker run -v /host/data:/container/data ubuntu # 將主機的 /host/data 目錄掛載到容器內的 /container/data 目錄。# 7. 設置環境變量
docker run -e MY_ENV_VAR=my_value ubuntu # 設置環境變量 MY_ENV_VAR 的值為 my_value,運行 ubuntu 容器。# 8. 使用網絡模式
docker run --network host nginx # 使用主機的網絡模式運行 nginx 容器。# 9. 指定重啟策略
docker run --restart always nginx # 設置容器的重啟策略為 always,即使容器停止也會自動重啟。# 10. 指定用戶
docker run -u user123 ubuntu # docker run -u user123 ubuntu# 11. 組合多個選項
docker run -d -p 8080:80 -v /host/data:/data --name webserver nginx 
# 后臺運行一個命名為 webserver 的 nginx 容器,將主機的 8080 端口映射到容器的 80 端口,并將主機的 /host/data 目錄掛載到容器的 /data 目錄。

exec 命令

docker exec 命令用于在運行中的容器內執行一個新的命令。這對于調試、運行附加的進程或在容器內部進行管理操作非常有用。

# 語法:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

常用參數

  • -d, --detach: 在后臺運行命令。
  • -i, --interactive: 保持標準輸入打開。
  • --workdir, -w: 指定命令的工作目錄。
  • -t, --tty: 分配一個偽終端。
  • --privileged: 給這個命令額外的權限。
  • -e, --env: 設置環境變量。
  • --env-file: 從文件中讀取環境變量。

簡單示例

# 1、在容器內運行命令,在運行中的 my_container 容器內執行 ls /app 命令,列出 /app 目錄的內容。
docker exec my_container ls /app# 2、以交互模式運行命令,注意不一定是/bin/bash,可能是/bin/sh、sh、bash等等
docker exec -it my_container /bin/bash
# 在運行中的 my_container 容器內啟動一個交互式的 Bash shell。-i 保持標準輸入打開,-t 分配一個偽終端。# 后臺運行命令,在運行中的 my_container 容器內后臺執行 touch /app/newfile.txt 命令,創建一個新文件。
docker exec -d my_container touch /app/newfile.txt# 3、設置環境變量,在運行中的 my_container 容器內執行 env 命令,并設置環境變量 MY_ENV_VAR 的值為 my_value。
docker exec -e MY_ENV_VAR=my_value my_container env# 4、以指定用戶身份運行命令,在運行中的 my_container 容器內以 user123 用戶身份執行 whoami 命令。
docker exec -u user123 my_container whoami# 5、指定工作目錄,在運行中的 my_container 容器內以 /app 目錄為工作目錄執行 pwd 命令。
docker exec -w /app my_container pwd

使用場景

  • 調試容器: 進入容器內部進行調試和排查問題。
  • 管理任務: 在容器內運行附加的管理任務或維護操作。
  • 監控和檢查: 在容器內執行監控和檢查命令,獲取運行狀態和日志。

create 命令

docker create 命令用于創建一個新的容器,但不會啟動它。

docker create 命令會根據指定的鏡像和參數創建一個容器實例,但容器只會在創建時進行初始化,并不會執行任何進程。

具體用法同 docker run 是一樣的。

其它命令

  • docker start 命令用于啟動一個或多個已經創建的容器。

    參數:

    • -a: 附加到容器的標準輸入輸出流。
    • -i: 附加并保持標準輸入打開。
  • docker stop 命令用于停止一個運行中的容器。

    參數:

    • -t, --time: 停止容器之前等待的秒數,默認是 10 秒。
  • docker restart 命令用于重啟容器。

  • docker kill 命令用于立即終止一個或多個正在運行的容器。

  • docker rm 命令用于刪除一個或多個已經停止的容器。

  • docker pause - 暫停容器中所有的進程。

  • docker unpause - 恢復容器中所有的進程。

    暫停的容器不會被終止,但其進程將被掛起,直到容器被恢復。這在需要臨時暫停容器活動的情況下非常有用。

    使用場景

    • 臨時暫停活動: 當需要臨時暫停容器中的所有活動以進行系統維護或資源管理時,可以使用 docker pause
    • 資源管理: 在需要重新分配系統資源時,暫停不必要的容器以釋放資源。
    • 調試和故障排除: 在調試或故障排除過程中暫停容器以分析當前狀態。
  • docker rename 命令用于重命名已存在的容器。允許在不停止或刪除容器的情況下,直接修改容器的名稱。

3、容器操作

ps 命令

docker ps 命令用于列出 Docker 容器。

默認情況下,docker ps 命令只顯示運行中的容器,但也可以通過指定選項來顯示所有容器,包括停止的容器。

# 語法:docker ps [OPTIONS]

OPTIONS 說明:

  • -a, --all: 顯示所有容器,包括停止的容器。
  • -q, --quiet: 只顯示容器 ID。
  • -l, --latest: 顯示最近創建的一個容器,包括所有狀態。
  • -n: 顯示最近創建的 n 個容器,包括所有狀態。
  • --no-trunc: 不截斷輸出。
  • -s, --size: 顯示容器的大小。
  • --filter, -f: 根據條件過濾顯示的容器。
  • --format: 格式化輸出。

實例

# 1、顯示最近創建的一個容器
docker ps -l# 2、顯示最近創建的 n 個容器
docker ps -n 3# 3、顯示容器的大小
docker ps -s

inspect 命令

docker inspect 命令用于獲取 Docker 對象(容器、鏡像、卷、網絡等)的詳細信息。

docker inspect 命令返回 JSON 格式的詳細信息,可以幫助用戶了解對象的配置和狀態。

# 語法:docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS 說明:

  • -f, --format: 使用 Go 模板語法格式化輸出。
  • --type: 返回指定類型的對象信息(可選類型:containerimagenetworkvolume)。

使用場景

  • 調試容器: 獲取容器的詳細配置信息,以便進行調試和排查問題。
  • 查看網絡配置: 查看容器的網絡配置信息,了解其網絡連接狀態。
  • 監控資源: 獲取容器的資源配置信息和使用情況,便于進行資源管理和監控。
  • 腳本自動化: 在自動化腳本中使用 docker inspect 獲取對象的詳細信息,以進行后續操作。

top 命令

docker top 命令用于顯示指定容器中的正在運行的進程。

docker top 命令類似于 Linux 中的 topps 命令,它幫助用戶查看容器內的進程信息,便于監控和調試容器內的活動。

# 語法:docker top [OPTIONS] CONTAINER [ps OPTIONS]

使用自定義 ps 選項:

docker top my_container -o pid,comm

常用場景

  • 監控容器內部活動: 通過查看容器內的進程,用戶可以監控容器內部正在運行的應用程序和服務。
  • 調試和排查問題: 當容器出現問題時,可以通過 docker top 命令查看容器內的進程,幫助排查問題。
  • 資源管理: 了解容器內的進程和資源使用情況,便于進行資源管理和優化。

logs 命令

docker logs 命令用于獲取和查看容器的日志輸出。

docker logs 命令非常有用,可以幫助用戶調試和監控運行中的容器。

# 語法:docker logs [OPTIONS] CONTAINER

常用選項:

  • -f, --follow: 跟隨日志輸出(類似于 tail -f)。
  • --since: 從指定時間開始顯示日志。
  • -t, --timestamps: 顯示日志時間戳。
  • --tail: 僅顯示日志的最后部分,例如 --tail 10 顯示最后 10 行。
  • --details: 顯示提供給日志的額外詳細信息。
  • --until: 顯示直到指定時間的日志。

實例

# 1、顯示帶時間戳的日志
docker logs -t my_container# 2、從指定時間開始顯示日志
docker logs --since="2023-07-22T15:00:00" my_container# 3、顯示直到指定時間的日志
docker logs --until="2023-07-22T16:00:00" my_container

cp 命令

docker cp 命令用于在 Docker 容器和宿主機之間復制文件或目錄。

docker cp 命令支持從容器到宿主機,或從宿主機到容器的文件復制操作。

# 語法
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
  • SRC_PATH: 源路徑(可以是容器內的路徑或宿主機的路徑)。
  • CONTAINER: 容器的名稱或 ID。
  • DEST_PATH: 目標路徑(可以是容器內的路徑或宿主機的路徑)。
# 1、從容器復制文件到宿主機
docker cp my_container:/path/in/container /path/on/host# 2、從宿主機復制文件到容器
docker cp /path/on/host my_container:/path/in/container

注意

在處理大文件或大目錄時,復制操作可能需要一些時間。且宿主機或容器中應有足夠的權限進行寫入操作。

其它命令

  • docker attach 命令用于附加到正在運行的 Docker 容器的標準輸入、輸出和錯誤輸出(stdin、stdout、stderr)。允許用戶直接與容器交互,就像與正在運行的進程交互一樣。
  • docker events 命令用于實時獲取 Docker 守護進程生成的事件。允許用戶監控 Docker 容器、鏡像、網絡和卷的各種操作事件,例如創建、啟動、停止、刪除等。
  • docker export 命令用于將 Docker 容器的文件系統導出為一個 tar 歸檔文件。用于備份或遷移容器的文件系統,而不包括 Docker 鏡像的所有層和元數據。
  • docker port 命令用于顯示容器的端口映射信息,即容器內部的端口如何映射到宿主機的端口。
  • docker stats 命令用于實時顯示 Docker 容器的資源使用情況,包括 CPU、內存、網絡 I/O 和塊 I/O。
  • docker update 命令用于更新 Docker 容器的資源限制,包括內存、CPU 等。
  • docker commit 命令用于將容器的當前狀態保存為一個新的 Docker 鏡像。通常用于創建鏡像來保存容器的狀態,以便在將來可以重用或分發該鏡像。

4、網絡命令

  • docker network ls: 列出所有網絡。
  • docker network create <network>: 創建一個新的網絡。
  • docker network rm <network>: 刪除指定的網絡。
  • docker network connect <network> <container>: 連接容器到網絡。
  • docker network disconnect <network> <container>: 斷開容器與網絡的連接。

5、卷命令

  • docker volume ls: 列出所有卷。
  • docker volume create <volume>: 創建一個新的卷。
  • docker volume rm <volume>: 刪除指定的卷。
  • docker volume inspect <volume>: 顯示卷的詳細信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/82305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82305.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/82305.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

09 接口自動化-用例管理框架pytest之allure報告定制以及數據驅動

文章目錄 一、企業級的Allure報告的定制左邊的定制&#xff1a;右邊的定制&#xff1a;1.用例的嚴重程度/優先級2.用例描述3.測試用例連接的定制4.測試用例步驟的定制5.附件的定制 二、企業中真實的定制有哪些&#xff1f;三、allure報告如何在本地訪問四、allure中的數據驅動裝…

DDoS防護實戰——從基礎配置到高防IP部署

一、基礎防護&#xff1a;服務器與網絡層加固 Linux內核優化&#xff1a; 調整TCP協議棧參數&#xff0c;緩解SYN Flood攻擊&#xff1a; # 啟用SYN Cookie并減少超時時間 echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout…

華為云Flexus+DeepSeek征文|Flexus云服務器Dify-LLM資源部署極致體驗Agent

前引&#xff1a;重磅來襲&#xff01;本次以DeepSeek-V3/R1商用大模型和Dify-LLM應用平臺一鍵部署為核心&#xff0c;專為新手打造“開箱即用”的AI開發體驗。無論你是想快速搭建企業級AI應用&#xff0c;還是探索大模型落地的無限可能&#xff0c;只需跟隨小編實現三步走&…

SQLAlchemy 2.0 查詢使用指南

SQLAlchemy 2.0 查詢使用指南 1. 環境設置 首先&#xff0c;需要安裝 SQLAlchemy 2.0 版本。假設你使用的是 SQLite 數據庫&#xff0c;可以通過以下命令安裝 SQLAlchemy&#xff1a; pip install sqlalchemy接著&#xff0c;我們創建數據庫連接并初始化會話&#xff1a; f…

Windows 使用 WSL 安裝 Ubuntu

一&#xff0c;前言 Windows 上輕松跑 Linux 又不想用笨重的VMware 和VirtualBox &#xff0c;怎么辦&#xff1f; 開源項目 Windows Subsystem for Linux (WSL)。它解決了許多開發者在 Windows 和 Linux 間切換的痛點&#xff0c;實現在 Windows 上無縫跑 Linux 工具和命令。…

[Excel VBA]如何製作買三送一優惠條件的POS結帳介面?

Excel I VBA I 買三送一優惠條件的POS結帳機 因應商品特賣活動&#xff0c;結帳介面需整合特定優惠條件&#xff0c;如買三送一&#xff0c;買五送二等等優惠條件。本文封面影片以買三送一為範例&#xff0c;並搭配VBA和對應按鈕&#xff0c;而實現銷售訂單紀錄和即時更新庫存等…

3d世界坐標系轉屏幕坐標系

世界坐標 ——> NDC標準設備坐標 ——> 屏幕坐標 標準設備NDC坐標系 屏幕坐標系 .project方法將 將向量(坐標)從世界空間投影到相機的標準化設備坐標 (NDC) 空間。 手動實現HTML元素定位到模型位置&#xff0c;實現模型標簽效果&#xff08;和css2Render原理同理&#…

Idea出現 100% classes 等

總是誤點出來&#xff0c;每次又忘了怎么消除&#xff0c;在這里記錄一下。 出現這樣&#xff1a; 操作idea界面的&#xff1a;點擊View->Tool Windows ->Coverage&#xff0c;然后關掉

從零開始學習QT——第一步

一、Qt 1.1、Qt是什么 Qt是一個跨平臺的C圖形用戶界面應用程序框架。它為應用程序開發者提供建立圖形界面所需的所有功能。它是完全面向對象的&#xff0c;很容易擴展&#xff0c;并且允許真正的組件編程。 1.2、Qt的發展歷程 1991年 Qt最早由芬蘭奇趣科技開發 1996年 進入商業…

MySQL 8.0 OCP 1Z0-908 171-180題

Q171.Examine this MySQL client command to connect to a remote database: mysql-h remote-example.org-u root–protocolTCP–ssl-mode Which two–ss1-mode values will ensure that an X.509-compliant certificate will be used to establish the SSL/TLS connection to …

【機器學習】 關于外插修正隨機梯度方法的數值實驗

1. 隨機梯度下降&#xff08;SGD&#xff09; 迭代格式&#xff1a; x k 1 x k ? η k ? f i ( x k ) x_{k1} x_k - \eta_k \nabla f_i(x_k) xk1?xk??ηk??fi?(xk?) 其中&#xff0c; η k \eta_k ηk? 為步長&#xff08;可能遞減&#xff09;&#xff0c; ? f…

每日c/c++題 備戰藍橋杯(洛谷P3382 三分法求極值詳解)

洛谷P3382 三分法求極值詳解 題目描述 P3382 三分法 要求在給定區間內尋找一個多項式函數的最大值點。題目保證函數在區間內先嚴格遞增后嚴格遞減&#xff08;單峰函數&#xff09;&#xff0c;適合使用三分法求解。 算法原理 三分法核心思想 對于單峰函數&#xff0c;在區…

[Windows] 一鍵實現重復工作自動化zTasker

zTasker&#xff0c;是一款定時&#xff5c;熱鍵&#xff5c;純粹的自動化任務神器。它支持超過100種任務類型&#xff0c;包括提醒、關機重啟、報時、擋屏休息、文件備份、音量調節、靜音等。用戶可以通過定時、CPU占用、文件夾監控、網速、快捷鍵等多種條件觸發任務。 簡單點…

Docker核心筆記

一、概述 1、架構 Docker容器基于鏡像運行,容器共享宿主機的內核,不會加載額外內核,通過Namespaces(環境隔離)和Cgroups(資源控制)實現隔離,Cgroups會限容器使用資源并控制優先級和統計數據。隔離后的容器僅包含應用所需的用戶態依賴 2、安裝 安裝先卸載再安裝,使用的yum…

2025年電工杯數學建模B題【垃圾運輸】原創論文分享

大家好呀&#xff0c;從發布賽題一直到現在&#xff0c;總算完成了2025年電工杯數學建模B題【垃圾運輸】完整的成品論文。 給大家看一下目錄吧&#xff1a; 目錄 摘 要&#xff1a; 一、問題重述 二&#xff0e;問題分析 2.1問題一 2.2問題二 2.3問題三 三、模型假設 …

[爬蟲知識] IP代理

相關實戰案例&#xff1a;[爬蟲實戰] 代理爬取&#xff1a;小白也能看懂怎么用代理 相關爬蟲專欄&#xff1a;JS逆向爬蟲實戰 爬蟲知識點合集 爬蟲實戰案例 引言&#xff1a;爬蟲與IP封鎖的攻防戰 對網絡爬蟲而言&#xff0c;遇到的一個較棘手的問題就是封IP&#xff1a;請…

計算機視覺---YOLOv1

YOLOv1深度解析&#xff1a;單階段目標檢測的開山之作 一、YOLOv1概述 提出背景&#xff1a; 2016年由Joseph Redmon等人提出&#xff0c;全稱"You Only Look Once"&#xff0c;首次將目標檢測視為回歸問題&#xff0c;開創單階段&#xff08;One-Stage&#xff09…

前端學習筆記element-Plus

【element-plus菜單】參數說明&#xff1a; active-text-color"#ffd04b"——激活顏色 background-color"#232323"——背景顏色&#xff08;29,160,176&#xff09; :default-active"$route.path"——配置默認高亮的菜單項 text-color"#f…

【Django DRF】一篇文章總結Django DRF框架

第一章 DRF框架基礎 1.1 DRF簡介 1.1.1 DRF定義與作用 1. 定義 DRF 即 Django REST framework&#xff0c;它是一個建立在 Django 基礎之上的強大且靈活的工具包&#xff0c;用于構建 Web API&#xff08;應用程序編程接口&#xff09;&#x1f60e;。簡單來說&#xff0c;…

如何解決 Python 項目安裝依賴報錯:ERROR: Failed to build installable wheels for some pyproject.toml based project

如何解決 Python 項目安裝依賴報錯&#xff1a;ERROR: Failed to build installable wheels for some pyproject.toml based projects 在使用 pip 安裝 Python 項目的依賴時&#xff0c;遇到類似如下的報錯信息&#xff1a; ERROR: Failed to build installable wheels for s…