Docker安裝和初始化配置(入門篇)
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
官方網站是一個互動的教程,在左側是相應的說明,右側是一個互動的終端,輸入預期的目錄,可以跳到下一步,大家可以參考我們的翻譯,在官網上面執行相應的命令,以驗證效果。
準備
- 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