1. 程式人生 > >Docker實踐(二):容器的管理(建立、檢視、啟動、終止、刪除)

Docker實踐(二):容器的管理(建立、檢視、啟動、終止、刪除)

docker官方文件地址如下:[https://docs.docker.com/engine/reference/](https://docs.docker.com/engine/reference/)

一、建立

  • docker create:建立容器,處於停止狀態。
    這裡寫圖片描述

    • centos:latest:centos容器:最新版本(也可以指定具體的版本號)。
    • 本地有就使用本地映象,沒有則從遠端映象庫拉取。
    • 建立成功後會返回一個容器的ID。
  • docker run:建立並啟動容器。

互動型容器:執行在前臺,容器中使用exit命令或者呼叫docker stop、docker kill命令,容器停止。

如下圖已經在前臺開啟一個docker容器:
這裡寫圖片描述

  • i:開啟容器的標準輸入。
  • t:告訴docker為容器建立一個命令列終端。
  • name:指定容器名稱,可以不填(隨機),建議根據具體使用功能命名,便於管理。
  • centos:告訴我們使用什麼映象來啟動容器。
  • /bin/bash:告訴docker要在容器裡面執行此命令。

後臺型容器:執行在後臺,建立後與終端無關,只有呼叫docker stop、docker kill命令才能使容器停止。

這裡寫圖片描述

  • d:使用-d引數,使容器在後臺執行。
  • c: 通過-c可以調整容器的CPU優先順序。預設情況下,所有的容器擁有相同的CPU優先順序和CPU排程週期,但你可以通過Docker來通知核心給予某個或某幾個容器更多的CPU計算週期。比如,我們使用-c或者–cpu-shares =0啟動了C0、C1、C2三個容器,使用-c/–cpu-shares=512啟動了C3容器。這時,C0、C1、C2可以100%的使用CPU資源(1024),但C3只能使用50%的CPU資源(512)。如果這個主機的作業系統是時序排程型別的,每個CPU時間片是100微秒,那麼C0、C1、C2將完全使用掉這100微秒,而C3只能使用50微秒。
  • -c後的命令是迴圈,從而保持容器的執行。
  • docker ps:可以檢視正在執行的docker容器。

二、檢視

  • docker ps: 檢視當前執行的容器
  • docker ps -a:檢視所有容器,包括停止的。

這裡寫圖片描述

  • 標題含義:

    • CONTAINER ID:容器的唯一表示ID。
    • IMAGE:建立容器時使用的映象。
    • COMMAND:容器最後執行的命令。
    • CREATED:建立容器的時間。
    • STATUS:容器狀態。
    • PORTS:對外開放的埠。
    • NAMES:容器名。可以和容器ID一樣唯一標識容器,同一臺宿主機上不允許有同名容器存在,否則會衝突。
  • docker ps -l :檢視最新建立的容器,只列出最後建立的。

  • docker ps -n=2:-n=x選項,會列出最後建立的x個容器。

這裡寫圖片描述

三、啟動

通過docker start來啟動之前已經停止的docker_run映象。
  • 容器名:docker start docker_run,或者ID:docker start 43e3fef2266c
  • –restart(自動重啟):預設情況下容器是不重啟的,–restart標誌會檢查容器的退出碼來決定容器是否重啟容器。
    • docker run --restart=always --name docker_restart -d centos /bin/sh -c "while true;do echo hello world; sleep;done":
    • --restart=always:不管容器的返回碼是什麼,都會重啟容器。
    • --restart=on-failure:5:當容器的返回值是非0時才會重啟容器。5是可選的重啟次數。
      這裡寫圖片描述

四、終止

  • docker stop [NAME]/[CONTAINER ID]:將容器退出。
  • docker kill [NAME]/[CONTAINER ID]:強制停止一個容器。

這裡寫圖片描述

五、刪除

容器終止後,在需要的時候可以重新啟動,確定不需要了,可以進行刪除操作。
  • docker rm [NAME]/[CONTAINER ID]:不能夠刪除一個正在執行的容器,會報錯。需要先停止容器。
    這裡寫圖片描述

  • 一次性刪除:docker本身沒有提供一次性刪除操作,但是可以使用如下命令實現:

    • docker rm 'docker ps -a -q':-a標誌列出所有容器,-q標誌只列出容器的ID,然後傳遞給rm命令,依次刪除容器。