Docker基礎命令說明

Docker基礎操作命令眾多,這些命令可以按如下方式進行分類:

  • 鏡像操作
  • 容器操作
  • 網絡操作
  • 數據卷操作
  • LOG查詢

等方面進行分類。

一、鏡像操作命令

  • docker images:用于列出本地系統中所有的 Docker 鏡像。鏡像就像是一個模板,它包含了運行容器所需的所有文件、配置和依賴項。通過docker images命令,可以查看鏡像的名稱、標簽、ID、創建時間以及大小等信息,例如:
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    05a60464f1d5   2 weeks ago   133MB
ubuntu       20.04     98c375a7b220   3 weeks ago   72.8MB
  • docker pull:用于從 Docker 鏡像倉庫(如 Docker Hub)拉取鏡像。
docker pull nginx:latest

上述命令會從 Docker Hub 拉取最新版本的 Nginx 鏡像。

  • docker build:基于 Dockerfile 構建自定義鏡像。
docker build -t my-custom-image:1.0 .

此命令會在當前目錄(.)查找 Dockerfile 并構建名為 my-custom-image 、標簽為 1.0 的鏡像。

  • docker rmi:刪除本地的 Docker 鏡像。
docker rmi nginx:latest

該命令會刪除本地的 nginx:latest 鏡像。

二、容器操作命令

  • docker ps::用于列出正在運行的 Docker 容器。
    容器是基于鏡像創建的可運行實例,當使用一個鏡像啟動一個容器后,就可以通過docker ps命令查看容器的相關信息,如容器 ID、運行的命令、創建時間、狀態、端口映射以及所使用的鏡像等,例如:
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    05a60464f1d5   2 weeks ago   133MB
ubuntu       20.04     98c375a7b220   3 weeks ago   72.8MB
  • docker run:基于指定鏡像創建并啟動一個新的容器。
docker run -d -p 8080:80 nginx:latest

此命令會使用 nginx:latest 鏡像創建一個后臺運行(-d)的容器,并將容器的 80 端口映射到主機的 8080 端口。

  • docker startdocker stopdocker restart:分別用于啟動、停止和重啟已經存在的容器。
# 啟動容器
docker start my-container
# 停止容器
docker stop my-container
# 重啟容器
docker restart my-container
  • docker exec:在運行的容器內部執行命令。
docker exec -it my-container bash

該命令會以交互式(-i)和偽終端(-t)模式在 my-container 容器內啟動一個 Bash 會話。

  • docker rm:刪除一個或多個停止的容器。
docker rm my-container

注意:
1、不能刪除一個正在run的程序;
2、如果一個image下啟動了一個或多個容器,且容器正在運行。如果要刪除image,必須按如下步驟進行:

  • 停止容器(docker stop my-container)
  • 刪除image創建的所有容器(docker rm my-container)
  • 刪除image(docker rmi my-image)

關于鏡像和容器的補充說明:

兩者的關系

  • 鏡像與容器的關系:容器是由鏡像創建而來的,鏡像是容器的基礎。可以將鏡像看作是一個類,而容器則是這個類的實例。一個鏡像可以創建多個容器實例,這些容器共享鏡像的文件系統和基礎配置,但各自有獨立的運行時環境和狀態。
  • 命令作用的關系docker images命令主要用于管理和查看鏡像資源,幫助了解本地有哪些可用的鏡像,以便進行拉取、構建、刪除等操作。而docker ps命令則主要用于監控和管理正在運行的容器,可以通過它了解容器的運行狀態,進而進行停止、啟動、重啟等操作。
    docker imagesdocker ps分別從鏡像和容器的角度提供了對Docker環境的不同視角,它們相互配合,幫助用戶全面了解和管理Docker中的資源。

三、網絡操作命令

  • docker network ls:列出所有 Docker 網絡。
docker network ls
  • docker network create:創建一個新的 Docker 網絡。
docker network create my-network
  • docker network connectdocker network disconnect:分別用于將容器連接到網絡和從網絡中斷開容器。
# 將容器連接到網絡
docker network connect my-network my-container
# 從網絡中斷開容器
docker network disconnect my-network my-container

四、數據卷操作命令

  • docker volume ls:列出所有 Docker 數據卷。
docker volume ls
  • docker volume create:創建一個新的 Docker 數據卷。
docker volume create my-volume
  • docker volume rm:刪除一個或多個 Docker 數據卷。
docker volume rm my-volume

五、其他常用命令

  • docker info:顯示 Docker 系統的綜合信息,如 Docker 版本、鏡像和容器數量、存儲驅動等。
docker info
  • docker logs:查看容器的日志輸出。
docker logs my-container

docker logs 命令用于查看 Docker 容器的日志輸出,這對于調試和監控容器內應用程序的運行狀態非常有用。以下是對該命令的詳細解釋:

基本語法

docker logs [OPTIONS] CONTAINER

其中,OPTIONS 是可選參數,CONTAINER 是容器的名稱或 ID。

常用選項及示例

1. -f--follow
  • 作用:持續跟蹤日志輸出,類似于 tail -f 命令。當容器內的應用程序持續產生日志時,使用該選項可以實時查看新的日志信息。
  • 示例
docker logs -f my-container

此命令會持續輸出 my-container 容器的日志,直到手動停止(使用 Ctrl + C)。

2. --since
  • 作用:只顯示自指定時間之后的日志。時間格式可以是 YYYY-MM-DDTHH:MM:SS 或者相對時間(如 2m 表示 2 分鐘前)。
  • 示例
# 顯示自 2024-01-01 12:00:00 之后的日志
docker logs --since "2024-01-01T12:00:00" my-container
# 顯示自 5 分鐘前之后的日志
docker logs --since 5m my-container
3. --until
  • 作用:只顯示直到指定時間之前的日志。時間格式與 --since 相同。
  • 示例
# 顯示直到 2024-01-01 12:00:00 之前的日志
docker logs --until "2024-01-01T12:00:00" my-container
# 顯示直到 3 分鐘前之前的日志
docker logs --until 3m my-container
4. -t--timestamps
  • 作用:在日志輸出中添加時間戳,方便了解每條日志的產生時間。
  • 示例
docker logs -t my-container

輸出的日志每條前面會帶有時間戳,類似如下格式:

2024-01-01T12:00:00.123456000Z Log message here
5. --tail
  • 作用:只顯示日志的最后 N 行。當日志文件非常大時,使用該選項可以快速查看最新的日志信息。
  • 示例
# 顯示日志的最后 10 行
docker logs --tail 10 my-container

六、高級用法

結合 grep 進行日志過濾

可以將 docker logs 的輸出通過管道傳遞給 grep 命令,以過濾出包含特定關鍵字的日志信息。

docker logs my-container | grep "error"

該命令會過濾出 my-container 容器日志中包含 “error” 關鍵字的行。

查找 指定開始、結束時間范圍內 的數據
docker logs --since "2024-01-01T12:00:00" --until "2024-01-01T12:05:00" my-container

注意事項

  • 日志文件大小:容器的日志文件會不斷增長,可能會占用大量磁盤空間。可以通過配置 Docker 的日志驅動(如 json-file 驅動的 max-sizemax-file 參數)來限制日志文件的大小和數量。
  • 日志權限:確保有足夠的權限查看容器的日志。通常,使用 root 用戶或具有 docker 組權限的用戶可以正常執行 docker logs 命令。

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

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

相關文章

AI重構私域增長:從流量收割到終身價值運營的三階躍遷

私域運營的AI進化論:內容即服務的三個階段 隨著企業微信生態的成熟,私域運營正經歷從"流量收割"到"關系養成"的本質轉變。在AIGC技術的推動下,2024年私域場景正式進入**"內容即服務"**的價值共創期&#xff1…

Linux date 命令使用指南

date 命令用于 顯示或設置系統日期和時間&#xff0c;支持靈活的時間格式化和計算。以下是常用場景與詳細示例&#xff1a; 一、基本用法 1. 顯示當前日期和時間 <BASH> date # 輸出&#xff1a;Thu Jun 13 14:25:36 CST 20242. 設置系統時間&#xff08;需root權限&am…

Maven的依賴管理

maven相關依賴的官網&#xff1a;https://mvnrepository.com/ pom.xml是項目依賴的配置文件 maven首先會去本地倉庫下載相關依賴&#xff0c;如果沒有&#xff0c;則會去私服下載&#xff0c;再沒有&#xff0c;就去中央倉庫或鏡像下載。 自定義properties&#xff0c;可使用…

Mybaties批量操作

1、批量插入 <!--批量操作-插入--><!-- 相當于INSERT INTO t_goods (c1,c2,c3) VALUES (a1,a2,a3),(b1,b2,b3),(d1,d2,d3),...--><insert id"batchInsert" parameterType"java.util.List">INSERT INTO t_goods (title,sub_title,origina…

向量庫集成指南

文章目錄 向量庫集成指南Chroma集成Pinecone集成MiLvus集成向量庫集成指南 向量庫是一種索引和存儲向量嵌入以實現高效管理和快速檢索的數據庫。與單獨的向量索引不同,像Pinecone這樣的向量數據庫提供了額外的功能,例如,索引管理、數據管理、元數據存儲和過濾,以及水平擴展…

軟件測試之使用Requests庫進行接口測試

文章目錄 前言Requests庫是什么為什么要用Requests庫進行接口測試安裝Requests庫Requests庫使用發送GET請求發送帶查詢參數的GET請求響應內容格式添加請求頭信息發送一個POST請求查看響應內容斷言請求超時Cookie與Session模擬登錄 參考目錄 前言 閱讀本文前請注意最后編輯時間…

AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

AttributeError: module backend_interagg has no attribute FigureCanvas 這個錯誤通常是由于 Matplotlib 的后端配置問題引起的。具體來說&#xff0c;Matplotlib 在嘗試加載某個后端時&#xff0c;發現該后端模塊中缺少必要的屬性&#xff08;如 FigureCanvas&#xff09;&a…

iWebOffice2015 中間件如何在Chrome107及之后的高版本中加載

iWebOffice2015是江西金格科技有限公司開發的一款智能文檔中間件&#xff0c;和一些知名OA及ERP公司曾經達成OEM合作&#xff0c;所以用戶一度比較多&#xff0c;但不幸的是Chromium內核瀏覽器在2022年10月份發布的107版本中永久取消了對PPAPI插件的加載支持&#xff0c;導致使…

【MyBatis Plus JSON 處理器簡化數據庫操作】

文章目錄 什么是 MyBatis-Plus JSON 處理器&#xff1f;開始使用 MyBatis-Plus JSON 處理器步驟 1: 創建實體類步驟 2: 創建 Mapper 接口步驟 3: 查詢 JSON 數據步驟 4: 插入和更新 JSON 數據 什么是 MyBatis-Plus JSON 處理器&#xff1f; MyBatis-Plus 是一個基于 MyBatis 的…

OpnenHarmony 開源鴻蒙北向開發——1.開發環境搭建(DevEco Studio 5.03)

我這邊是基于window下對OpenHarmony開源鴻蒙進行北向開發。 一、安裝DevEco Studio 1、下載 下載中心 | 華為開發者聯盟-HarmonyOS開發者官網&#xff0c;共建鴻蒙生態 2、安裝 下載完成之后進行解壓 雙擊進行安裝 按照我的步驟進行 選擇安裝目錄&#xff0c;全部配置完成后…

深入 Python 網絡爬蟲開發:從入門到實戰

一、為什么需要爬蟲&#xff1f; 在數據驅動的時代&#xff0c;網絡爬蟲是獲取公開數據的重要工具。它可以幫助我們&#xff1a; 監控電商價格變化抓取學術文獻構建數據分析樣本自動化信息收集 二、基礎環境搭建 1. 核心庫安裝 pip install requests beautifulsoup4 lxml …

linux(ubuntu)中Conda、CUDA安裝Xinference報錯ERROR: Failed to build (llama-cpp-python)

文章目錄 一、常規辦法二、繼續三、繼續四、缺少 libgomp庫&#xff08;最終解決&#xff09;在 Conda 環境中安裝 libgomp 如果符合標題情況 執行的&#xff1a; pip install "xinference[all]"大概率是最終解決的情況。 一、常規辦法 llama-cpp-python 依賴 CMak…

OpenGL中繪制圖形元素的實現(使用visual studio(C++)繪制一個矩形)

目標&#xff1a;使用OpenGL提供的函數繪制矩形、線段、三角形等基本圖形元素 所需效果 實驗步驟 1、配置OpenGL&#xff08;詳情參見OpenGL的配置&#xff09; 2、頭文件引入 #include <gl/glut.h> 3、編寫方法體 1>矩形實現 //繪制矩形 void DisplayRectangl…

庖丁解java(一篇文章學java)

(大家不用收藏這篇文章,因為這篇文章會經常更新,也就是刪除后重發) 一篇文章學java,這是我滴一個執念... 當然,真一篇文章就寫完java基礎,java架構,java業務實現,java業務擴展,根本不可能.所以,這篇文章,就是一個索引,索什么呢? 請看下文... 關于決定開始寫博文的介紹 …

面試高頻#LeetCode#Hot100-字母異位詞分組

題號鏈接 49. 字母異位詞分組 - 力扣&#xff08;LeetCode&#xff09; 1首先定義map集合一個String對應一個String[]集合&#xff0c;遍歷字符串數組 2對其先進行拆分&#xff0c;拆分為字符數組&#xff0c;再進行排序&#xff0c;再轉為字符串 3如果key值沒有就創建一個字符…

esProc SPL vs DuckDB:多源數據處理誰更勝一籌?

DuckDB 和 esProc SPL 都支持多樣數據源處理&#xff0c;這里比較一下兩者的差異。 支持的數據源種類 DuckDB 支持的數據源類型覆蓋了常見的文件格式&#xff08;如 CSV、Parquet、JSON、Excel&#xff09;、云存儲&#xff08;如 AWS S3、Azure Blob Storage&#xff09;以及…

超精密工件小孔幾何尺寸測量:自動化解決方案

下載鏈接&#xff1a;&#xff08;最新版本&#xff09;超精密工件小孔幾何尺寸測量&#xff1a;自動化解決方案python腳本代碼&#xff0c;可直接運行&#xff0c;內包含測試數據&#xff0c;親測好用資源-CSDN文庫 在現代制造業中&#xff0c;超精密工件的質量控制至關重要&a…

重生之我在學Vue--第11天 Vue 3 高級特性

重生之我在學Vue–第11天 Vue 3 高級特性 文章目錄 重生之我在學Vue--第11天 Vue 3 高級特性前言一、Teleport&#xff1a;打破組件層級的瞬移術1. 什么是Teleport&#xff1f;2. 核心用法3. 實戰技巧 二、Suspense&#xff1a;異步組件的優雅過渡1. 為什么需要Suspense&#x…

MCU的工作原理:嵌入式系統的控制核心

MCU的工作原理可以概括為以下幾個步驟&#xff1a; 1. 初始化 上電后&#xff0c;MCU從Flash存儲器中加載程序代碼&#xff0c;并初始化外設和寄存器。 2. 任務執行 根據程序邏輯&#xff0c;MCU執行數據處理、外設控制和通信等任務。通過中斷系統實時響應外部事件。 3. 低…

游戲引擎學習第158天

回顧和今天的計劃 我們在這里會實時編碼一個完整的游戲&#xff0c;沒有使用引擎或庫&#xff0c;一切都由我們自己做所有的編程工作&#xff0c;游戲中的每一部分&#xff0c;無論需要做什么&#xff0c;我們都親自實現&#xff0c;并展示如何完成這些任務。今天&#xff0c;…