Docker中文文檔:
什麼是Docker?
- 王春生
- 26895
- 最後編輯:王春生 於 2014-02-15 10:11:11
Docker是一個開源的引擎,可以輕鬆的爲任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集羣和其他的基礎應用平臺。
Docker通常用於如下場景:
- web應用的自動化打包和發佈;
- 自動化測試和持續集成、發佈;
- 在服務型環境中部署和調整數據庫或其他的後臺應用;
- 從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。
關於docker入門教程
- 2014-01-15 20:21:53
- 王春生
- 22214
- 最後編輯:王春生 於 2014-02-15 09:32:38
docker入門教程翻譯自docker官方網站的Docker getting started 教程,官方網站:http://www.docker.io/gettingstarted/#0
官方網站是一個交互的教程,在左側是相應的說明,右側是一個交互的終端,輸入預期的目錄,可以跳到下一步,大家可以參考我們的翻譯,在官網上面運行相應的命令,以驗證效果。
準備
- 2014-01-15 20:18:56
- 王春生
- 18646
- 最後編輯:王春生 於 2014-02-15 09:31:52
準備開始
Docker系統有兩個程序:docker服務端和docker客戶端。其中docker服務端是一個服務進程,管理着所有的容器。docker客戶端則扮演着docker服務端的遠程控制器,可以用來控制docker的服務端進程。大部分情況下,docker服務端和客戶端運行在一臺機器上。
目標:
檢查docker的版本,這樣可以用來確認docker服務在運行並可通過客戶端鏈接。
提示:
可以通過在終端輸入docker命令來查看所有的參數。
官網的在線模擬器只提供了有限的命令,無法保證所有的命令可以正確執行。
正確的命令:
$docker version搜索可用docker鏡像
- 2014-01-15 20:18:56
- 王春生
- 18879
- 最後編輯:王春生 於 2014-02-15 09:31:52
搜索可用的docker鏡像
使用docker最簡單的方式莫過於從現有的容器鏡像開始。Docker官方網站專門有一個頁面來存儲所有可用的鏡像,網址是:index.docker.io。你可以通過瀏覽這個網頁來查找你想要使用的鏡像,或者使用命令行的工具來檢索。
目標:
學會使用命令行的工具來檢索名字叫做tutorial的鏡像。
提示:
命令行的格式爲:docker search 鏡像名字
正確的命令:
$docker search tutorial
下載容器鏡像
- 2014-01-15 20:18:56
- 王春生
- 17586
- 最後編輯:王春生 於 2014-02-15 09:31:52
學會使用docker命令來下載鏡像
下載鏡像的命令非常簡單,使用docker pull命令即可。(譯者按:docker命令和git有一些類似的地方)。在docker的鏡像索引網站上面,鏡像都是按照用戶名/鏡像名的方式來存儲的。有一組比較特殊的鏡像,比如ubuntu這類基礎鏡像,經過官方的驗證,值得信任,可以直接用鏡像名來檢索到。
目標:
通過docker命令下載tutorial鏡像。
提示:
執行pull命令的時候要寫完整的名字,比如"learn/tutorial"。
正確的命令:
$docker pull learn/tutorial
在docker容器中運行hello world!
- 2014-01-15 20:18:56
- 王春生
- 17778
- 最後編輯:王春生 於 2014-02-15 09:31:52
在docker容器中運行hello world!
docker容器可以理解爲在沙盒中運行的進程。這個沙盒包含了該進程運行所必須的資源,包括文件系統、系統類庫、shell 環境等等。但這個沙盒默認是不會運行任何程序的。你需要在沙盒中運行一個進程來啓動某一個容器。這個進程是該容器的唯一進程,所以當該進程結束的時候,容器也會完全的停止。
目標:
在我們剛剛下載的鏡像中輸出"hello word"。爲了達到這個目的,我們需要在這個容器中運行"echo"命令,輸出"hello word"。
提示:
docker run命令有兩個參數,一個是鏡像名,一個是要在鏡像中運行的命令。
正確的命令:
$docker run learn/tutorial echo "hello word"
在容器中安裝新的程序
- 2014-01-15 20:18:56
- 王春生
- 15989
- 最後編輯:王春生 於 2014-02-15 09:31:52
在容器中安裝新的程序
下一步我們要做的事情是在容器裏面安裝一個簡單的程序(ping)。我們之前下載的tutorial鏡像是基於ubuntu的,所以你可以使用ubuntu的apt-get命令來安裝ping程序:apt-get install -y ping。
備註:apt-get 命令執行完畢之後,容器就會停止,但對容器的改動不會丟失。
目標:
在learn/tutorial鏡像裏面安裝ping程序。
提示:
在執行apt-get 命令的時候,要帶上-y參數。如果不指定-y參數的話,apt-get命令會進入交互模式,需要用戶輸入命令來進行確認,但在docker環境中是無法響應這種交互的。
正確的命令:
$docker run learn/tutorial apt-get install -y ping
保存對容器的修改
- 王春生
- 17271
- 最後編輯:王春生 於 2014-02-15 09:31:52
保存對容器的修改
當你對某一個容器做了修改之後(通過在容器中運行某一個命令),可以把對容器的修改保存下來,這樣下次可以從保存後的最新狀態運行該容器。docker中保存狀態的過程稱之爲committing,它保存的新舊狀態之間的區別,從而產生一個新的版本。
目標:
首先使用docker ps -l命令獲得安裝完ping命令之後容器的id。然後把這個鏡像保存爲learn/ping。
提示:
1. 運行docker commit,可以查看該命令的參數列表。
2. 你需要指定要提交保存容器的ID。(譯者按:通過docker ps -l 命令獲得)
3. 無需拷貝完整的id,通常來講最開始的三至四個字母即可區分。(譯者按:非常類似git裏面的版本號)
正確的命令:
$docker commit 698 learn/ping
執行完docker commit命令之後,會返回新版本鏡像的id號。
運行新的鏡像
- 王春生
- 13018
- 最後編輯:王春生 於 2014-02-15 09:31:52
運行新的鏡像
ok,到現在爲止,你已經建立了一個完整的、自成體系的docker環境,並且安裝了ping命令在裏面。它可以在任何支持docker環境的系統中運行啦!(譯者按:是不是很神奇呢?)讓我們來體驗一下吧!
目標:
在新的鏡像中運行ping www.google.com命令。
提示:
一定要使用新的鏡像名learn/ping來運行ping命令。(譯者按:最開始下載的lean/tutorial鏡像中是沒有ping命令的)
正確的命令:
$docker run lean/ping ping www.google.com
關鍵詞:docker鏡像
檢查運行中的鏡像
- 王春生
- 10547
- 最後編輯:王春生 於 2014-02-15 09:31:52
檢查運行中的鏡像
現在你已經運行了一個docker容器,讓我們來看下正在運行的容器。
使用docker ps命令可以查看所有正在運行中的容器列表,使用docker inspect命令我們可以查看更詳細的關於某一個容器的信息。
目標:
查找某一個運行中容器的id,然後使用docker inspect命令查看容器的信息。
提示:
可以使用鏡像id的前面部分,不需要完整的id。
正確的命令:
$ docker inspect efe
發佈自己的鏡像
- 王春生
- 10501
- 最後編輯:王春生 於 2014-02-15 09:31:52
發佈docker鏡像
現在我們已經驗證了新鏡像可以正常工作,下一步我們可以將其發佈到官方的索引網站。還記得我們最開始下載的learn/tutorial鏡像吧,我們也可以把我們自己編譯的鏡像發佈到索引頁面,一方面可以自己重用,另一方面也可以分享給其他人使用。
目標:
把learn/ping鏡像發佈到docker的index網站。
提示:
1. docker images命令可以列出所有安裝過的鏡像。
2. docker push命令可以將某一個鏡像發佈到官方網站。
3. 你只能將鏡像發佈到自己的空間下面。這個模擬器登錄的是learn帳號。
預期的命令:
$ docker push learn/ping