Docker 基礎命令

百聯達發表於2017-08-31
一:概述

使用docker或者docker help 可以檢視docker的所有命令。 使用docker 命令  - -help 可以檢視命令的詳細資訊。




二:命令介紹

 

1.       Info,version

檢視docker的環境資訊和版本資訊

2.       容器生命週期管理

Docker run命令用來基於特定的映象建立一個容器,並依據選項來控制該容器。

--name : 為容器起一個名字,若無此選項,Docker預設為容器分配一個名字

--i: 使用交換模式,始終保持輸入流開發

--t: 分配一個偽終端進行互動 

如:docker run –ti –name myCentos centos:latest /bin/bash

--d(--detach=false) 指定容器執行於前臺還是後臺 預設為false 前臺

如:docker run –d centos:latest ping  ,這個容器將永久在後臺執行,因為ping這個執行緒不會停止。

--restart 當一個容器推出後的啟動策略,預設為’no’

如:docker run –d –restart=always centos:latest ping 

-u(--user=””) 指定容器的使用者

-a(--attach=[]) 登陸容器(必須是以docker run –d 啟動的後臺執行的容器)

 

如:docker run –it –d centos這個容器一執行,會自動執行預設的執行緒”/bin/bash”,但是不會讓你馬上進入控制檯操作。將會在後臺執行,用docker ps 可以看到當前執行的控制檯。進入容器可是使用docker attach“容器名稱或ID”。但是它有一個缺點,只要這個連線終止或者使用了exit命令,容器就會退出後臺執行。

一般使用docker exec進入,退出使用exit 

如:docker exec –ti 8777*****  /bin/bash

-w(--workdir=””) 指定容器的工作目錄

如:docker run -ti -d -w /home/docker  centos

進入到容器內執行touch a.txt操作,則檔案a.txt預設在容器內的/home/docker目錄下

-c 設定容器cpu權重,在cpu共享場景使用 ;-c 選項將會廢棄,推薦使用 --cpu-shares。簡單的就是,所有設定的值相加,每個容器的佔比就是 CPU 的利用率,如果只有一個容器,那麼此時它無論設定 512 或者 1024,CPU 利用率都將是 100%。當然,如果主機是 3core,執行 3 個容器,兩個 cpu-shares 設定為 512,一個設定為 1024,則此時每個 container 都能佔用其中一個 CPU 為 100%

 

-m 指定容器的記憶體的上限

預設docker記憶體限制可以使用-m引數進行限制,但如果僅-m引數,不新增其他,那麼記憶體限制不會限制死,比如你-m 256m記憶體,那麼容器里程式可以跑到256m*2=512m後才會被oom給殺死。但如果你想寫死記憶體,可以使用-m 100m --memory-swap=100m。

  如果不新增--memory-swap選項,則表示容器中程式可以使用100M記憶體和100Mswap記憶體,預設情況下,--memory-swap 會被設定成 memory 的 2倍。-m 為實體記憶體上限,而 --memory-swap 則是 memory + swap 之和,當壓測值是 --memory-swap 上限時,則容器中的程式會被直接 OOM kill

-P 暴露所有的容器介面,與主機隨機對映

-p  暴露指定的介面與主機對映

如:docker run -d --name=server-db -p 3306:3306 centos6.8-mysql /usr/bin/mysql_safe –d  這時候我們指定了伺服器宿主機的3306埠對映到容器的3306埠,暴露出去。

-h(--hostname=””) 指定容器的主機名

-v(--volume=[]) 給容器掛載儲存卷,掛載到容器的某個目錄。

3.       Docker start/stop/restart命令

Docker run命令可以新建一個容器來執行,而對於已經存在的容器,可以透過上面的命令來啟動,停止和重啟。

4.       Docker倉庫命令

Docker registry是儲存映象的倉庫。使用者可以透過Docker clientDocker registry進行通訊,以此來完成映象的搜尋,下載和上傳等相關操作。

Docker pull :docker 倉庫中拉取映象  如: docker pull centos:latest

Docker push : 將本地的映象推送到倉庫

 

5.       映象管理

Docker images : 列出主機上的映象,預設只列出最頂層的映象,可以使用-a選項顯示所有映象

6.       Docker rmi: 用於刪除映象,如果已有基於該映象啟動的容器存在,則無法直接刪除,需首先刪除容器。當然可以透過-f 選項,強制刪除。

7.       Docker attach  連線到正在執行的容器

8.       Docker inspect:檢視映象和容器的詳細資訊,預設會列出全部資訊,可以透過—format引數來指定輸出的模板格式。

9.       Docker ps: 檢視容器的相關資訊 常用的選項有-a-l

10.   Docker commit: 將一個容器固化為一個新的映象。如在容器中安裝特定工具等,透過commit命令將這些修改儲存起來,使其不會應為容器的停止而丟失。

11.   Docker events: 列印實時的系統事件

12.   Docker history: 列印指定映象的歷史版本資訊

13.   Docker logs : 列印容器中程式的執行日誌

14.   Docker build: 透過Dockerfile建立一個新的映象

15.   Docker cp : 本地檔案系統和容器之間進行檔案或資料夾的copy. 如:docker cp /usr/local/src/c.txt  58188a80dbd8:/home/docker

16.   Docker diff: 檢視容器檔案系統的變更

17.   Docker create:建立一個容器但不啟動它

18.   Dockers export:把容器的檔案系統以tar包的格式匯出到標準輸出。

19.   Docker import : 匯入容器為映象

20.   Docker kill:殺掉一個執行中的容器

21.   Docker login:登陸docker倉庫

22.   Docker logout

23.   Docker pause :停止容器中的所有程式

24.   Docker search:在倉庫中搜尋映象

25.   Docker top : 顯示容器中執行的程式

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2144365/,如需轉載,請註明出處,否則將追究法律責任。