1. 程式人生 > >Docker安裝和初始化配置(入門篇)

Docker安裝和初始化配置(入門篇)

Docker中文文件:

什麼是Docker?

王春生
26895
最後編輯:王春生 於 2014-02-15 10:11:11
簡介:Docker是一個開源的引擎,可以輕鬆的為任何應用建立一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機器)、bare metal、OpenStack 叢集和其他的基礎應用平臺。

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入門教程

官方網站是一個互動的教程,在左側是相應的說明,右側是一個互動的終端,輸入預期的目錄,可以跳到下一步,大家可以參考我們的翻譯,在官網上面執行相應的命令,以驗證效果。

準備

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服務端和客戶端執行在一臺機器上。

目標:

檢查docker的版本,這樣可以用來確認docker服務在執行並可通過客戶端連結。

提示:

可以通過在終端輸入docker命令來檢視所有的引數。

官網的線上模擬器只提供了有限的命令,無法保證所有的命令可以正確執行。

正確的命令:

$docker version

搜尋可用docker映象

2014-01-15 20:18:56
王春生
18879
最後編輯:王春生 於 2014-02-15 09:31:52
簡介:這一步的目標是學會使用docker search命令來檢索可用映象。

搜尋可用的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 pull命令下載一個映象。

學會使用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 run命令可以啟動某一個映象,並執行一個命令。

在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
簡介:在docker容器中安裝新的程式。

在容器中安裝新的程式

下一步我們要做的事情是在容器裡面安裝一個簡單的程式(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 commit命令儲存對容器的修改

儲存對容器的修改

當你對某一個容器做了修改之後(通過在容器中執行某一個命令),可以把對容器的修改儲存下來,這樣下次可以從儲存後的最新狀態執行該容器。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


關鍵詞

檢查執行中的映象

王春生
10547
最後編輯:王春生 於 2014-02-15 09:31:52
簡介:使用docker ps命令可以檢視所有正在執行中的容器列表,使用docker inspect命令我們可以檢視更詳細的關於某一個容器的資訊。

檢查執行中的映象

現在你已經運行了一個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