Docker入門及命令詳解

Docker提供了容器運行環境,開發者可以利用Docker打包應用及依賴包成容器鏡像,便於移植開發。docker容器可以理解爲在沙盒中運行的進程。這個沙盒包含了該進程運行所必須的資源,包括文件系統、系統類庫、shell環境等等。利用Docker可以簡單方便的實現類似VM的功能,且耗費更少的計算資源。小白B利用Docker官網提供的Linux鏡像執行了bash程序,也就相當於運行起了Linux操作系統。

啓動docker,在終端查詢Docker鏡像庫資源,以Ubuntu鏡像爲例:

·     docker search ubuntu

獲取鏡像資源:

$ docker pull ubuntu

1.    Docker獲取到鏡像文件後可以啓動容器,將鏡像資源裝入容器中運行,容器包含正在運行的程序的進程。容器狀態分爲啓動和停止狀態。

啓動一次性運行的容器:

$ docker run ubuntu /bin/echo ‘Hello world’

參數解釋

--run :啓動容器命令

  ubuntu: 鏡像名

  /bin/echo ‘Hello world’: 容器中執行的命令

這時候docker會創建一個新容器分配一個文件系統,並在只讀的image層外面掛載一層可讀寫的層。

2.    啓動交互模式容器

$ docker run -i -t ubuntu /bin/bash

--i :開啓一個終端

--t: 以交互模式運行

3.    啓動後臺運行模式

$ docker run -d -i -t --name chew ubuntu/bin/bash

這時不會進入bash程序,執行成功後會返回容器ID

--name: 指定容器名

4.    新容器由run創建後,如果要進入容器運行程序

$ docker exec –it 容器名或容器ID/bin/bash

5.    停止容器

$docker stop 容器名或容器ID

6.    啓動容器

$ docker start容器名或容器ID

7.    當退出Docker再重新進入後,原來的容器會保留並處在停止狀態,需重新啓動後才能進入容器執行程序。

 

docker commit 發佈新容器鏡像

8.    如果我們在初始鏡像上作了修改並向重新創建一個容器來運行該鏡像,那麼這時要將其封裝成一個新的鏡像,首先退出所在容器

$docker exit

$ docker commit 容器名或ID 新鏡像名稱

完成後我們就有了一個新的鏡像,可以通過docker images查看當前的所有鏡像。

 

容器內權限

9.    大約在0.6版時,Dokcer引入了privileged。

使用該參數,容器內的root擁有真正的root權限;

否則容器內的root只是外部的一個普通用戶權限。

以privileged方式啓動的容器可以執行mount掛載,否則就會報未知錯誤+_+

root@a853ab6f6bcb:~# mountramdisk.image -o loop ./file_tmp/

mount: ./file_tmp/:mount failed: Unknown error -1

10.  最後較完整的開啓容器的命令如下:

$ docker run -it -d --privileged --name 新容器名鏡像名/bin/bash

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章