一張腦圖整理Docker常用命令

三分惡發表於2021-01-10

先上圖:

Docker

Dcoker基本概念

Docker 包括三個基本概念:

  • 映象(Image):Docker 映象是一個特殊的檔案系統,除了提供容器執行時所需的程式、庫、資源、配置等檔案外,還包含了一些為執行時準備的一些配置引數(如匿名卷、環境變數、使用者等)。映象不包含任何動態資料,其內容在構建之後也不會被改變。

  • 容器(Container):映象(Image)和容器(Container)的關係,就像是物件導向程式設計中的 例項 一樣,映象是靜態的定義,容器是映象執行時的實體。容器可以被建立、啟動、停止、刪除、暫停等。

  • 倉庫(Repository):倉庫(Repository)類似Git的遠端倉庫,集中存放映象檔案。

三者關係可以用下圖表示:

Docker

接下來看一看Docker的常用命令。

服務

  • 檢視Docker版本資訊
docker version
  • 檢視docker簡要資訊
docker -v
  • 啟動Docker
systemctl start docker
  • 關閉docker
systemctl stop docker
  • 設定開機啟動
systemctl enable docker
  • 重啟docker服務
service docker restart
  • 關閉docker服務
service docker stop

映象

映象倉庫

Docker Hub 等映象倉庫上有大量的高質量的映象可以用,可以從倉庫獲取映象。

  • 檢索映象
docker search 關鍵字
  • 拉取映象
docker pull [選項] [Docker Registry 地址[:埠號]/]倉庫名[:標籤]

映象管理

  • 列出映象
docker image ls
docker images
  • 刪除映象
# 刪除指定映象
docker rmi <映象Id>
  • 匯出映象
# 將映象儲存為歸檔檔案
docker save
  • 匯入映象
docker load

Dockerfile構建映象

Dockerfile 是一個文字格式的配 檔案,使用者可以使用 Dockerfile 來快速建立自定義的映象。

Dockerfile 由一行行行命令語句組成,並且支援以#開頭的註釋行.

Dockerfile常見指令

下面是Dockerfile中一些常見的指令:

  • FROM:指定基礎映象

  • RUN:執行命令

  • COPY:複製檔案

  • ADD:更高階的複製檔案

  • CMD:容器啟動命令

  • ENV:設定環境變數

  • EXPOSE:暴露埠

其它的指令還有ENTRYPOINT、ARG、VOLUME、WORKDIR、USER、HEALTHCHECK、ONBUILD、LABEL等等。

以下是一個Dockerfile例項:

FROM java:8
MAINTAINER "jinshw"<jinshw@qq.com>
ADD mapcharts-0.0.1-SNAPSHOT.jar mapcharts.jar
EXPOSE 8080
CMD java -jar mapcharts.jar

映象構建

docker build

映象執行

映象執行,就是新建並執行一個容器。

docker run [映象ID]

容器

容器生命週期

  • 啟動:啟動容器有兩種方式,一種是基於映象新建一個容器並啟動,另外一個是將在終止狀態(stopped)的容器重新啟動。
# 新建並啟動
docker run [映象名/映象ID]
# 啟動已終止容器
docker start [容器ID]
  • 檢視容器
# 列出本機執行的容器
$ docker ps 
# 列出本機所有的容器(包括停止和執行)
$ docker ps -a
  • 停止容器
# 停止執行的容器
docker stop [容器ID]
# 殺死容器程式
docker  kill [容器ID] 
  • 重啟容器
docker restart [容器ID] 
  • 刪除容器
docker  rm [容器ID]

進入容器

進入容器有兩種方式:

# 如果從這個 stdin 中 exit,會導致容器的停止
docker attach [容器ID]
# 互動式進入容器
docker exec [容器ID]

進入容器通常使用第二種方式,docker exec後面跟的常見引數如下:

- d, --detach 在容器中後臺執行命令;
- i, --interactive=true I false :開啟標準輸入接受使用者輸入命令

匯出和匯入

  • 匯出容器
#匯出一個已經建立的容器到一個檔案
docker export [容器ID]
  • 匯入容器
# 匯出的容器快照檔案可以再匯入為映象
docker import [路徑]

其它

  • 檢視日誌
# 匯出的容器快照檔案可以再匯入為映象
docker logs [容器ID]

這個命令有以下常用引數
-f : 跟蹤日誌輸出

--since :顯示某個開始時間的所有日誌

-t : 顯示時間戳

--tail :僅列出最新N條容器日誌
  • 複製檔案
# 從主機複製到容器
sudo docker cp host_path containerID:container_path 
# 從容器複製到主機
sudo docker cp containerID:container_path host_path



參考:

【1】:Docer從入門到實踐

【2】:5分鐘帶你快速瞭解Docker和k8s

【3】:docker常用命令整理

【4】:Docker 常用命令與操作

【5】:Docker 三要素 :映象、容器和倉庫

【6】:docker 常用命令

相關文章