Docker 鏡像常用命令

  • 搜索鏡像
    可使用 docker search 命令搜索存放在 Docker Hub 中的鏡像。例如: docker search java 執行該命令后, Docker 就會在 Docker Hub 中搜索含有 java 這個關鍵詞的鏡像倉庫。執行該命令后,可看到類似于如下的表格:

    該表格包含五列,含義如下。
  • NAME :鏡像倉庫名稱。
  • DESCRIPTION :鏡像倉庫描述。
  • STARS :鏡像倉庫收藏數,表示該鏡像倉庫的受歡迎程度,類似于 GitHub 的 Stars 。
  • OFFICIAL :表示是否為官方倉庫,該列標記為 [OK] 的鏡像均由各軟件的官方項目組創建和維護。由結果可知,前8個鏡像倉庫是官方倉庫,而其他的倉庫都不是鏡像倉庫。
  • AuTOMATED :表示是否是自動構建的鏡像倉庫。
  • 下載鏡像
    使用命令 docker pull 命令即可從 Docker Registry 上下載鏡像,例如: docker putl j ava 執行該命令后, Docker 會從 Docker Hub 中的 Java 倉庫下載最新版本的 Jaya 鏡像。若鏡像下載緩慢,可配置鏡像加速器,Docker 簡單入門(一)。該命令還可指定想要下載的鏡像標簽以及 Docker Registry 地址,例如: docker pull reg.itmuch.com/java:7 這樣就可以從指定的 Docker Registry 中下載標簽為 7 的 Java 鏡像。
  • 列出鏡像
    使用 docker images 命令即可列出已下載的鏡像。執行該命令后,將會看到類似于如下的表格:

    該表格包含了 5 列,含義如下。
  • REPOSITORY :鏡像所屬倉庫名稱。
  • TAG :鏡像標簽。默認是 latest ,表示最新。
  • IMAGE ID :鏡像 ID ,表示鏡像唯一標識。
  • CREATED :鏡像創建時間。
  • SIZE :鏡像大小
  • 刪除本地鏡像
    使用 docker rmi 命令即可刪除指定鏡像。

    例1 :刪除指定名稱的鏡像。
    doCker rmi hello-world 表示刪除 hello-world 這個鏡像。
    例 2 :刪除所有鏡像。
    docker rmi -f $(docker images)
    -f 參數表示強制刪除。

Docker 容器的常用命令

  1. 新建并啟動容器
    使用一下docker run 命令即可新建并啟動一個容器。
    該命令是最常用的命令,它有很多選項下面將列舉一些常用的選項:
    -d選項:表示后臺運行
    -P選項:隨機端口映射
    -p選項:指定端口映射,有以下四種格式。
    ip: hostPort: containerPort
    p: containerport
    hostPort: containerPort
    container port
    network選項:指定網絡模式,該選項有以下可選參數:
    --network=bridge:默認選項,表示連接到默認的網橋。
    --network=host:容器使用宿主機的網絡。
    --network=container:NAME_or_ID:告訴 Docker讓新建的容器使用已有容器的網絡配置
    --network=none:不配置該容器的網絡,用戶可自定義網絡配置。
    示例1
    docker run java /bin/echo 'Hello World'

    這樣終端會打印 Hello world的字樣,跟在本地直接執行/bin/echo" Hello World"一樣。
    示例2:

    docker run -d-p 91: 80 nginx

    這樣就能啟動一個Ngnx容器。在本例中,為 docker run添加了兩個參數,含義如下:
    -d # 后臺運行
    -p宿主機端口:容器端口 # 開放容器端口到宿主機端口
    訪問htt: Docker宿主機IP:91/

    需要注意的是,使用 docker run命令創建容器時,會先檢查本地是否存在指定鏡像。如果本地不存在該名稱的鏡像, Docker就會自動從 Docker Hub下載鏡像并啟動一個 Docker容器。

  2. 列出容器
    使用 docker ps命令即可列出運行中的容器執行該命令后,可看到類似于如下的表格。

    如需列出所有容器(包括已停止的容器),可使用-a參數。
    該表格包含了7列,含義如下。
    CONTAINER ID:表示容器I。
    MAGE:表示鏡像名稱。
    COMMAND:表示啟動容器時運行的命令。
    CREATED:表示容器的創建時間。
    STATUS:表示容器運行的狀態。U表示運行中, Exited表示已停止
    PORTS:表示容器對外的端口號。
    NAMES:表示容器名稱。該名稱默認由 Docker自動生成,也可使用 docker run 命令的-name選項自行指定。
  3. 停止容器
    使用 docker stop命令,即可停止容器。例如
docker stop 784fd3b294d7

中784635294d7是容器ID,當然也可使用 ocker stop容器名稱來停止指定容器。
4. 強制停容器
可使用 docker kill命令發送 SIGKILL信號來強制停止容器。例如:

docker kill 784fd3b294d7
  1. 啟動已停止的容器
    使用 docker run命令,即可新建并啟動一個容器。對于已停止的容器,可使用 docker start命令來啟動。例如:
docker start 784fd3b294d7
  1. 重啟容器
    可使用 docker restart命令來重啟容器。該命令實際上是先執行了 locker stop命令,然后執行了 docker start 命令。
  2. 進入容器
docker container exec -i -t 容器ID /bin/bash
  1. 刪除容器
    使用 docker rm 命令即可刪除看定溶器。
    例1:刪除指定容器。
docker rm 784fd3b294d7

該命令盡能刪除已停止的容器,如需刪除正在運行的容器,可使用 -f 參數。
例2:刪除所有的容器。

docker rm -f $(docker ps -a -q)

學習于:《Spring Cloud與Docker 微服務架構實戰》 — 周立