Docker常用命令小記

来源:https://www.cnblogs.com/bolingcavalry/archive/2019/09/22/11570047.html
-Advertisement-
Play Games

除了基本的docker pull、docker image、docker ps,還有一些命令及參數也很重要,在此記錄下來避免遺忘。 環境信息 以下是本次操作的環境: 1. 操作系統:CentOS Linux release 7.7.1908 2. Docker:19.03.2 假設當前環境正運行著兩 ...


除了基本的docker pulldocker imagedocker ps,還有一些命令及參數也很重要,在此記錄下來避免遺忘。

環境信息

以下是本次操作的環境:

  1. 操作系統:CentOS Linux release 7.7.1908
  2. Docker:19.03.2

假設當前環境正運行著兩個容器,接下來的操作都基於這兩個容器進行:

[root@vostro harbor]# docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS               NAMES
11548ac31116        tomcat:9.0.26-jdk8-openjdk   "catalina.sh run"        6 seconds ago       Up 5 seconds        8080/tcp            inspiring_ardinghelli
21c0499ccc76        nginx                        "nginx -g 'daemon of…"   29 minutes ago      Up 29 minutes       80/tcp              strange_zhukovsky

整體信息

docker info用來看整體信息:

[root@vostro harbor]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 19
 Server Version: 19.03.2
 Storage Driver: overlay
  Backing Filesystem: xfs
  Supports d_type: true
...

釋放空間

  1. docker system prune會刪除以下內容:

a. 已經停止的容器;

b. 未被使用的網路;

c. 所有未打標簽的鏡像;

d. 構建鏡像時產生的緩存;
註意:此命令刪除的東西過多,所以要慎用

  1. 刪除已經停止的容器:docker container prune
  2. 刪除未被使用的網路:docker network prune
  3. 刪除沒有Tag的鏡像:docker image prune
  4. 刪除沒有容器的鏡像:docker image prune -a
  5. 刪除未被使用的數據捲:docker volume prune

    過濾

    執行docker ps的時候會列出所有運行狀態的容器,有時我們只想看自己關註的,這時可以對結果做過濾:
  6. 按容器ID過濾:docker ps -f id=11548ac31116
[root@vostro harbor]# docker ps -f id=11548ac31116
CONTAINER ID        IMAGE                        COMMAND             CREATED             STATUS              PORTS               NAMES
11548ac31116        tomcat:9.0.26-jdk8-openjdk   "catalina.sh run"   4 minutes ago       Up 4 minutes        8080/tcp            inspiring_ardinghelli
  1. 按容器名稱過濾:docker ps -f name=inspiring_ardinghelli
[root@vostro harbor]# docker ps -f name=inspiring_ardinghelli
CONTAINER ID        IMAGE                        COMMAND             CREATED             STATUS              PORTS               NAMES
11548ac31116        tomcat:9.0.26-jdk8-openjdk   "catalina.sh run"   7 minutes ago       Up 7 minutes        8080/tcp            inspiring_ardinghelli
  1. 按鏡像過濾,這種過濾再細分有三種:

a. 按鏡像名和TAG過濾:docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk

b. 按鏡像ID過濾:docker ps -f ancestor=4965bfab1881

c. 按照鏡像摘要信息過濾:docker ps -f ancestor=tomcat@sha256:67a9904e3ceb03abc50db7b374db7362f7e44d08a41488dd24c2bb14df8989a3

鏡像的摘要信息如何獲取呢?執行命令docker inspect tomcat:9.0.26-jdk8-openjdk可以獲取鏡像的詳情,如下圖所示,紅框中就是摘要信息:
在這裡插入圖片描述

  1. 按容器狀態過濾:docker ps -f status=running,狀態有這些:created, restarting, running, removing, paused, exited, dead
  2. 還有其他的過濾條件,不過不常用到,如下圖:
    在這裡插入圖片描述

信息獲取

  1. 查看容器所占硬碟空間:docker ps -s
    在這裡插入圖片描述
    上圖紅框中就是容器資源占用情況,508MB表示:鏡像大小+容器自身大小,40KB表示容器自身所占資源大小;
  2. 查看容器信息時只看某些欄位,例如只看容器ID、鏡像、容器名稱這三列:docker ps --format "table {{.ID}}: {{.Image}}: {{.Names}}"
[root@vostro harbor]# docker ps --format "table {{.ID}}: {{.Image}}: {{.Names}}"
CONTAINER ID: IMAGE: NAMES
11548ac31116: tomcat:9.0.26-jdk8-openjdk: inspiring_ardinghelli
21c0499ccc76: nginx: strange_zhukovsky

下圖展示了所有的列的名稱:
在這裡插入圖片描述

  1. 如下圖紅框所示,當欄位內容過長時,展示的是部分內容,如果想查看完整信息請使用docker ps --no-trunc
    在這裡插入圖片描述
  2. 在使用docker history命令查看鏡像的構建信息時,也會因為內容過長而被省略,如下圖,此時也能用--no-trunc參數看到被省略的信息:
    在這裡插入圖片描述

    組合使用

  3. 只顯示Tomcat容器的ID欄位:docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q
[root@vostro harbor]# docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q
11548ac31116
  1. 上面的命令可以得到Tomcat容器的ID欄位,如果我們想停止該容器,將上述命令和docker stop組合起來使用即可:docker stop $(docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q)
[root@vostro harbor]# docker stop $(docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q)
11548ac31116
[root@vostro harbor]# docker ps -a
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS                        PORTS               NAMES
11548ac31116        tomcat:9.0.26-jdk8-openjdk   "catalina.sh run"        About an hour ago   Exited (143) 43 seconds ago                       inspiring_ardinghelli
21c0499ccc76        nginx                        "nginx -g 'daemon of…"   2 hours ago         Up 2 hours                    80/tcp              strange_zhukovsky

可見tomcat容器已經停止。

以上是我日常工作中經常用到的docker命令,更多的信息請參考官方文檔:https://docs.docker.com/engine/reference/commandline/docker/

歡迎關註我的公眾號:程式員欣宸


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一 Django的視圖函數view 一個視圖函數(類),簡稱視圖,是一個簡單的Python 函數(類),它接受Web請求並且返回Web響應。 響應可以是一張網頁的HTML內容,一個重定向,一個404錯誤,一個XML文檔,或者一張圖片。 無論視圖本身包含什麼邏輯,都要返迴響應。代碼寫在哪裡也無所謂,只 ...
  • 回顧 -Hibernate框架 ORM: 對象關係映射.把資料庫表和JavaBean通過映射的配置文件映射起來, 操作JavaBean對象,通過映射的配置文件生成SQL語句,自動執行.操作資料庫. 1: 類名.hbm.xml 映射配置文件. 2: hibernate.cfg.xml 核心配置文件. ... ...
  • 1.1 JdbcTemplate概述 : 它是spring框架中提供的一個對象,是對原始JdbcAPI對象的簡單封裝.spring框架為我們提供了很多的操作模板類. ORM持久化技術 模板類 JDBC org.springframework.jdbc.core.J... ...
  • 1.1 AOP概述 1.1.1 什麼是AOP? AOP : 全稱是Aspect Oriented Progamming既 : 面向切麵編程.通過預編譯方式和運行期動態代理實現程式功能的統一維護的一種技術. 簡單的說它就是把我們程式重覆的代碼抽取出來,在需要執行的時候,使用動態代理的技術,在不修改源碼... ...
  • 1.1 基於註解的IOC配置 既註解配置和xml配置要實現的功能都是一樣的,都是要降低程式間的耦合.只是配置的形式不一樣. 1.2 環境搭建 1.2.1 第一步:拷貝必備的jar包 需要多拷貝一個spring-aop-4.2.4.RELEASE.jar 1.2.2 創建xml文件,導入約束 ... ...
  • 一 URL配置 "Django 1.11版本 URLConf官方文檔" URL配置(URLconf)就像Django 所支撐網站的目錄。它的本質是URL與要為該URL調用的視圖函數之間的映射表。你就是以這種方式告訴Django,對於這個URL調用這段代碼,對於那個URL調用那段代碼。 基本格式 註意 ...
  • 一 web框架的本質及自定義web框架 我們可以這樣理解:所有的Web應用本質上就是一個socket服務端,而用戶的瀏覽器就是一個socket客戶端,基於請求做出響應,客戶都先請求,服務端做出對應的響應,按照http協議的請求協議發送請求,服務端按照http協議的響應協議來響應請求,這樣的網路通信, ...
  • 一、創建一個學生類 每個學生都有學號信息,但是每一個學生的學號都是不同的,所以要訪問這個學號必須先創建對象,通過對象去訪問學號信息,學號信息不能直接通過“類”去訪問,所以這種成員變數又被稱為“實例變數” 註意: (1)對象又被稱為實例,實例變數又被稱為對象變數(對象級別的變數) (2)不創建對象,這 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...