大家好,今天我們來了解一下 Windows 操作系統(tǒng)中的 Docker 以及在其中安裝 Docker Windows 客戶端的知識。Docker 引擎使用 Linux 特有的內(nèi)核特性,因此不能通過 Windows 內(nèi)核運(yùn)行,所以,(在 Windows 上)Docker 引擎創(chuàng)建了一個小的虛擬系統(tǒng)運(yùn)行 Linux 并利用它的資源和內(nèi)核。這樣,Windows Docker 客戶端就可以用這個虛擬的 Docker 引擎來構(gòu)建、運(yùn)行以及管理 Docker 容器。有個叫 Boot2Docker 的團(tuán)隊開發(fā)了一個同名的應(yīng)用程序,它創(chuàng)建了一個虛擬機(jī)來運(yùn)行基于Tiny Core Linux特制的小型 Linux,來在 Windows 上運(yùn)行 Docker 容器。它完全運(yùn)行在內(nèi)存中,需要大約 27M 內(nèi)存并能在 5秒 (因人而異) 內(nèi)啟動。因此,在用于 Windows 的 Docker 引擎被開發(fā)出來之前,我們在 Windows 機(jī)器里只能運(yùn)行 Linux 容器。
下面是安裝 Docker 客戶端并在上面運(yùn)行容器的簡單步驟。
1. 下載 Boot2Docker
在我們開始安裝之前,我們需要 Boot2Docker 的可執(zhí)行文件??梢詮?它的 Github 下載最新版本的 Boot2Docker。在這篇指南中,我們從網(wǎng)站中下載版本 v1.6.1。我們從那網(wǎng)頁中用我們喜歡的瀏覽器或者下載管理器下載了名為 docker-install.exe 的文件。
2. 安裝 Boot2Docker
現(xiàn)在我們運(yùn)行安裝文件,它會安裝 Window Docker 客戶端、用于 Windows 的 Git(MSYS-git)、VirtualBox、Boot2Docker Linux ISO 以及 Boot2Docker 管理工具,這些對于開箱即用地運(yùn)行全功能的 Docker 引擎都至關(guān)重要。
3. 運(yùn)行 Boot2Docker
安裝完成必要的組件之后,我們從桌面上的“Boot2Docker Start”快捷方式啟動 Boot2Docker。它會要求你輸入以后用于驗證的 SSH 密鑰。然后會啟動一個配置好的用于管理在虛擬機(jī)中運(yùn)行的 Docker 的 unix shell。
為了檢查是否正確配置,運(yùn)行下面的 docker version 命令。
docker version
4. 運(yùn)行 Docker
由于 Boot2Docker Start 自動啟動了一個已經(jīng)正確設(shè)置好環(huán)境變量的 shell,我們可以馬上開始使用 Docker。請注意,如果我們要將 Boot2Docker 作為一個遠(yuǎn)程 Docker 守護(hù)進(jìn)程,那么不要在 docker 命令之前加 sudo。
現(xiàn)在,讓我們來試試 hello-world 例子鏡像,它會下載 hello-world 鏡像,運(yùn)行并輸出 "Hello from Docker" 信息。
$ docker run hello-world
5. 使用命令提示符(CMD) 運(yùn)行 Docker
現(xiàn)在,如果你想開始用命令提示符使用 Docker,你可以打開命令提示符(CMD.exe)。由于 Boot2Docker 要求 ssh.exe 在 PATH 中,我們需要在命令提示符中輸入以下命令使得 %PATH% 環(huán)境變量中包括 Git 安裝目錄下的 bin 文件夾。
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
運(yùn)行上面的命令之后,我們可以在命令提示符中運(yùn)行 boot2docker start 啟動 Boot2Docker 虛擬機(jī)。
boot2docker start
注意: 如果你看到 machine does no exist 的錯誤信息,就運(yùn)行 boot2docker init 命令。
然后復(fù)制上圖中控制臺標(biāo)出命令到 cmd.exe 中為控制臺窗口設(shè)置環(huán)境變量,然后我們就可以像平常一樣運(yùn)行 docker 容器了。
6. 使用 PowerShell 運(yùn)行 Docker
為了能在 PowerShell 中運(yùn)行 Docker,我們需要啟動一個 PowerShell 窗口并添加 ssh.exe 到 PATH 變量。
$Env:Path = "${Env:Path};c:\Program Files (x86)\Git\bin"
運(yùn)行完上面的命令,我們還需要運(yùn)行
boot2docker start
這會打印用于設(shè)置環(huán)境變量連接到虛擬機(jī)內(nèi)部運(yùn)行的 Docker 的 PowerShell 命令。我們只需要在 PowerShell 中運(yùn)行這些命令就可以和平常一樣運(yùn)行 docker 容器。
7. 用 PUTTY 登錄
Boot2Docker 會在%USERPROFILE%.ssh 目錄生成和使用用于登錄的公共和私有密鑰,我們也需要使用這個文件夾中的私有密鑰。私有密鑰需要轉(zhuǎn)換為 PuTTY 的格式。我們可以通過 puttygen.exe 實現(xiàn)。
我們需要打開 puttygen.exe 并從 %USERPROFILE%.ssh\id_boot2docker 中導(dǎo)入("File"->"Load" 菜單)私鑰,然后點擊 "Save Private Key"。然后用保存的文件通過 PuTTY 用 docker@127.0.0.1:2022 登錄。
8. Boot2Docker 選項
Boot2Docker 管理工具提供了一些命令,如下所示。
$ boot2docker
Usage: boot2docker.exe [options>] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|shellinit|delete|download|upgrade|version} [args>]
總結(jié)
通過 Docker Windows 客戶端使用 Docker 很有趣。Boot2Docker 管理工具是一個能使任何 Docker 容器能像在 Linux 主機(jī)上平滑運(yùn)行的很棒的應(yīng)用程序。如果你更仔細(xì)的話,你會發(fā)現(xiàn) boot2docker 默認(rèn)用戶的用戶名是 docker,密碼是 tcuser。最新版本的 boot2docker 設(shè)置了一個 host-only 的網(wǎng)絡(luò)適配器提供訪問容器的端口。一般來說是 192.168.59.103,但可以通過 VirtualBox 的 DHCP 實現(xiàn)改變。
如果你有任何問題、建議、反饋,請在下面的評論框中寫下來然后我們可以改進(jìn)或者更新我們的內(nèi)容。非常感謝!Enjoy:-)