上一篇大體介紹了什麼是
Docker
和其安裝(以Ubuntu爲例)。這篇來講說,Docker
的基本操做。html
上一篇的演示中使用的都是默認登陸了Root
權限後的操做,而實際的開發運維狀況下,咱們通常極少使用Root
權限,因此Docker
提供了一個權限組,咱們只須要把當前用戶加入到Docker
用戶組中。docker
一共須要三條指令:shell
$ sudo groupadd docker
$ sudo gpasswd -a ${USER} docker
$ sudo service docker restart
複製代碼
三條指令的意思分別是:ubuntu
docker
用戶組,通常會默認建立,提示已存在docker
用戶組docker
服務示例以下bash
注意 重啓服務後,仍需推出當前用戶,從新登錄使用戶權限生效!運維
本內容僅提供經常使用操做命令及參數,並不是完整內容,具體能夠參考官方文檔或三方手冊補全。ui
推薦參考菜鳥教程(RUNOOB.COM
)的-Docker命令大全spa
$ docker run IMAGE [COMMAND] [AGR…]
複製代碼
run
在新容器中執行的命令IMAGE
啓動容器所使用的操做系統的鏡像[COMMAND]
容器啓動後的運行命令[AGR]
命令參數示例:操作系統
一個執行單一指令的基本容器3d
$ docker run ubuntu echo 'Hello world!'
複製代碼
$ docker run -i -t IMAGE /bin/bash
複製代碼
-i
開啓標準輸入(交互) --interactive = true | false 默認是false-t
分配僞tty終端 --tty = true | false 默認是false示例:
$ docker run -i -t ubuntu /bin/bash
複製代碼
docker
建立了一個容許使用bash交互的系統,當執行exit
時推出,釋放資源。
$ docker ps [OPTIONS]
複製代碼
-a
查看全部容器-l
查看最近建立的容器無參
正在運行的容器docker inspect NAME|ID [NAME|ID...]
複製代碼
參數爲 ps
列舉出的ID /NAME
執行後列舉出容器的元信息,此處略過。
順帶一提:
前文中run
指令中未提到,給容器指定名稱的方法:
$ docker run --name=自定義名 -i -t IMAGE /bin/bash
複製代碼
不少時候並不須要不停的建立容器,而是能夠將已經中止的容器重啓來使用。
$ docker start [-i] 容器名
複製代碼
-i
交互模式示例以下:
$ docker rm 容器名
複製代碼
示例以下:
區別於交互式容器,守護式容器有以下特色:
推出交互模式,後臺運行:
使用快捷鍵
Ctrl+P
+Ctrl+Q
退出交互後,容器仍在運行,使用docker ps
查看
直到執行exit
,容器被釋放
$ docker attach 容器名
複製代碼
執行指令後從新進入容器交互界面,圖略
直接使用run
來建立交互式容器
$ docker run -d IMAGE [COMMAND] [AGR…]
複製代碼
區別於默認模式,-d
參數表面啓動後臺駐留
示例:(這裏經過編寫一個循環shell來驗證)
$ docker run --name dc_test -d ubuntu /bin/sh -c "while true; do echo 'hello world'; sleep 1; done"
複製代碼
執行後返回ID
,截圖略
$ docker logs [-f] [-t] [--tail] 容器名
複製代碼
參數:
-f
保持跟蹤日誌變化並返回結果 --follows = true | false 默認爲false-t
返回結果加上時間戳 --timestamps = true | false 默認爲false--tail
= all 返回結尾處制定數量的日誌 不指定則返回全部示例:
$ docker logs dc_test --tail 3 -t -f
複製代碼
之前面建立的dc_test
容器爲例,先顯示三行,並保持跟蹤且顯示時間戳:
注意:Ctrl+C
退出(Linux下絕大部分操做通用嘛)
查看運行中容器的進程:
$ docker top 容器名
複製代碼
Docker
的理念是,在一個容器中使用一個服務,但仍然提供了在一個容器中運行多個進程的方法,從而實現對運行中容器進行維護,監控等操做。
$ docker exec [-d] [-i] [-t] 容器名 [COMMAND] [AGR…]
複製代碼
參數: -d
/-i
/-t
和前面run
相同
$ docker exec -i -t dc_test /bin/bash
複製代碼
之前面建立的dc_test
容器爲例,爲其添加一個bash
終端進程,並使用top
指令查看
$ docker stop 容器名
複製代碼
發送中止信號給容器,等待容器的中止。
$ docker kill 容器名
複製代碼
直接中止容器。