1. 程式人生 > 實用技巧 >docker命令常用總結

docker命令常用總結

Docker是一個開源的容器引擎,它有助於更快地交付應用。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數週的任務,在Docker容器的處理下,只需要數秒就能完成。

架構

![img](

Docker架構圖

  • Docker daemon( Docker守護程序):Docker daemon是一個執行在宿主機( DOCKER-HOST)的後臺程序。可通過 Docker客戶端與之通訊。
  • Client( Docker客戶端):Docker客戶端是 Docker的使用者介面,它可以接受使用者命令和配置標識,並與 Docker daemon通訊。圖中, docker build等都是 Docker的相關命令。
  • Images( Docker映象):Docker映象是一個只讀模板,它包含建立 Docker容器的說明。它和系統安裝光碟有點像,使用系統安裝光碟可以安裝系統,同理,使用Docker映象可以執行 Docker映象中的程式。
  • Container(容器):容器是映象的可執行例項。映象和容器的關係有點類似於面向物件中,類和物件的關係。可通過 Docker API或者 CLI命令來啟停、移動、刪除容器。
  • Registry:Docker Registry是一個集中儲存與分發映象的服務。構建完 Docker映象後,就可在當前宿主機上執行。但如果想要在其他機器上執行這個映象,就需要手動複製。此時可藉助Docker Registry來避免映象的手動複製。一個 Docker Registry可包含多個 Docker倉庫,每個倉庫可包含多個映象標籤,每個標籤對應一個 Docker映象。這跟 Maven的倉庫有點類似,如果把 Docker Registry比作Maven倉庫的話,那麼 Docker倉庫就可理解為某jar包的路徑,而映象標籤則可理解為jar包的版本號。Docker Registry可分為公有Docker Registry和私有Docker Registry。 最常用的DockerRegistry莫過於官網的Docker Hub, 這也是預設的Docker Registry。 Docker Hub上存放著大量優秀的映象, 我們可使用Docker命令下載並使用。

安裝

按照菜鳥的步驟,使用yum安裝即可。

常用命令

映象相關

  • docker search java:在Docker Hub(或阿里映象)倉庫中搜索關鍵字(如java)的映象
  • docker pull java:8:從倉庫中下載映象,若要指定版本,則要在冒號後指定
  • docker images:列出已經下載的映象
  • docker rmi java:刪除本地映象
  • docker build:構建映象

容器相關

  • docker run -d -p 91:80 nginx :在後臺執行nginx,若沒有映象則先下載,並將容器的80埠對映為宿主機的91埠。
    • -d:後臺執行
    • -P:隨機埠對映
    • -p:指定埠對映
    • -net:網路模式
  • docker ps:列出執行中的容器
  • docker ps -a :列出所有的容器
  • docker stop 容器id:停止容器
  • docker kill 容器id:強制停止容器
  • docker start 容器id:啟動已停止的容器
  • docker inspect 容器id:檢視容器的所有資訊
  • docker container logs 容器id:檢視容器日誌
  • docker top 容器id:檢視容器裡的程序
  • docker exec -it 容器id /bin/bash:進入容器
  • exit:退出容器
  • docker rm 容器id:刪除已停止的容器
  • docker rm -f 容器id:刪除正在執行的容器

所有命令

  • docker
  • docker COMMAND --help

構建映象

  1. 確定映象模板:如java、nginx
  2. 新建Dockerfile檔案
  3. 使用Dockerfile的指令完善Dockerfile的內容
  4. 在Dockerfile檔案的所在路徑執行docker build -t imageName:tag .,-t指定映象名稱,末尾的點標識Dockerfile檔案的路徑
  5. 執行docker run -d -p 92:80 imageName:tag即可

常用指令如下圖,直白用法點,官方介紹點選

![img](![](

個性化指令解釋

備註:RUN命令在 image 檔案的構建階段執行,執行結果都會打包進入 image 檔案;CMD命令則是在容器啟動後執行。另外,一個 Dockerfile 可以包含多個RUN命令,但是隻能有一個CMD命令。注意,指定了CMD命令以後,docker container run命令就不能附加命令了,否則它會覆蓋CMD命令。

Docker Compose

Docker Compose是 docker 提供的一個命令列工具,用來定義和執行由多個容器組成的應用。使用 compose,我們可以通過 YAML 檔案宣告式的定義應用程式的各個服務,並由單個命令完成應用的建立和啟動