Docker Toolbox 是傳統(tǒng)桌面的解決方案,主要用于在不符合 Docker Desktop for Mac 和 Docker Desktop for Windows(win8/10)要求的舊版 Mac 和 Windows 系統(tǒng)上安裝 Docker,如果可能的話建議你更新到較新系統(tǒng)版本。如果你的系統(tǒng)不滿足 Docker Desktop for Windows 應(yīng)用程序的最低系統(tǒng)要求,Docker Toolbox 提供了一種在 Windows 系統(tǒng)上使用 Docker 的方法。
Docker Toolbox包括以下工具:
?Docker CLI 客戶端 ,用于運行Docker Engine以創(chuàng)建鏡像和容器。
?Docker Machine,以便從Windows終端運行Docker Engine命令。
?Docker Compose,運行docker編排命令
?Kitematic,Docker圖形用戶界面
?Docker QuickStart Shell,為Docker命令行環(huán)境預(yù)先配置的腳本
?Oracle VM virtualbox,承載小型 Linux 虛擬機
因為 docker Engine 守護進程使用 Linux 特定的內(nèi)核功能,所以不能在 Windows 上本機運行 docker Engine。相反您必須使用 docker machine 命令來創(chuàng)建并連接到您機器上的一個小型 Linux 虛擬機。這個虛擬機在您的Windows系統(tǒng)上為您托管 Docker Engine。
提示:較新的 Docker Desktop for Windows 解決方案的一個優(yōu)點是它使用本機虛擬化,不需要 virtualbox 來運行 Docker。
第一步:檢查系統(tǒng)版本
要運行 Docker 您的計算機必須有一個運行 Windows7 或更高版本的64位操作系統(tǒng)。此外必須確保在您的計算機上啟用虛擬化。要驗證您的機器是否符合這些要求,請執(zhí)行以下操作:
- 在
控制面板\所有控制面板項\系統(tǒng)查看系統(tǒng)版本
如果不是受支持的版本,可以考慮升級操作系統(tǒng)。如果您有一個更新的系統(tǒng),特別是64位 Windows 10 Pro,具有Enterprise and Education(1607 Anniversary Update,Build 14393或更高版本),請考慮使用 Docker Desktop for Windows。它的本機運行在 Windows 上,因此不需要預(yù)先配置的 Docker QuickStart shell。它還使用 Hyper-V 進行虛擬化,因此下面用于檢查虛擬化的說明對于較新的 Windows 系統(tǒng)將是過時的。在 Docker Desktop for Windows 主題中的安裝前須知中提供了完整的安裝先決條件。
- 確保您的Windows系統(tǒng)支持硬件虛擬化技術(shù),并且已啟用虛擬化。
對于 Windows 10,運行 specy 并查看 CPU 信息。
對于 Windows 8或8.1選擇開始>任務(wù)管理器并導(dǎo)航到性能選項卡,在CPU下您應(yīng)該看到以下內(nèi)容:

如果系統(tǒng)上未啟用虛擬化,請按照制造商的說明啟用虛擬化(啟動系統(tǒng)時進入BIOS設(shè)置啟用虛擬化),對于 Windows 7 運行類似Microsoft?硬件輔助虛擬化檢測工具或 Specy 的工具,并按照屏幕上的說明進行操作。
- 驗證Windows操作系統(tǒng)是否為64位(x64)
控制面板\所有控制面板項\系統(tǒng)查看系統(tǒng)類型。
第二步:安裝 Docker Toolbox
在本節(jié)中,您將安裝 Docker Toolbox 軟件和幾個“助手”應(yīng)用程序,安裝會將以下軟件添加到您的計算機:
?用于 Windows 的 Docker Client
?Docker 工具箱管理工具和 ISO
?Oracle VM virtualbox
?git-msys-git-unix 工具
如果安裝了早期版本的virtualbox,請不要使用Docker工具箱安裝程序重新安裝。當(dāng)提示安裝時,取消即可。如果虛擬機正在運行,則必須在運行安裝程序之前將其關(guān)閉。
注意:Docker 不再為 Docker Toolbox 維護 download.docker.com,因此在安裝過程中會顯示未簽名警告(已驗證發(fā)布者對話框)。
1. 要下載 Docker 工具箱的最新版本,請轉(zhuǎn)到工具箱版本并下載最新的.exe文件。
2. 雙擊安裝程序安裝 Docker Toolbox,安裝程序啟動“安裝-Docker 工具箱”對話框,如果“Windows安全”對話框提示您允許程序進行更改,請選擇“是”,系統(tǒng)顯示安裝-Docker工具箱Windows向?qū)А?/p>

按“下一步”接受所有默認(rèn)值,然后安裝,接受所有安裝程序默認(rèn)值,安裝程序需要幾分鐘來安裝所有組件。
當(dāng)Windows安全系統(tǒng)通知安裝程序?qū)⑦M行更改時,請確保允許安裝程序進行必要的更改,完成后,安裝程序報告成功。
取消選中“在文件資源管理器中查看快捷方式”,然后按“完成”。
第三步:驗證安裝
安裝程序?qū)?Docker Toolbox、VirtualBox 和 Kitematic 添加到應(yīng)用程序文件夾中。在此步驟中,啟動 Docker Toolbox 并運行一個簡單的 Docker 命令。
- 在桌面上找到 Docker QuickStart 終端圖標(biāo)。

- 單擊 Docker QuickStart 圖標(biāo)啟動預(yù)配置的Docker工具箱終端。
如果系統(tǒng)顯示用戶帳戶控制提示,允許 VirtualBo x對您的計算機進行更改。選擇“是”。終端會為您設(shè)置 Docker 工具箱,首次運行時提示未找到linux鏡像,如果網(wǎng)速快就從github下載 boot2docker.ISO(程序自動下載),網(wǎng)速不好也可以在目錄 C:\Users\Administrator\AppData.docker\machine\cache 中找到鏡像,復(fù)制到 C:\Users\Administrator.docker\machine\cache 下(然后重新啟動),命令行顯示如下:
Creating CA: C:\Users\Administrator\.docker\machine\certs\ca.pem
Creating client certificate: C:\Users\Administrator\.docker\machine\certs\cert.pem
Running pre-create checks...
(default) Image cache directory does not exist, creating it at C:\Users\Administrator\.docker\machine\cache...
(default) No default Boot2Docker ISO found locally, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v19.03.1
(default) Downloading C:\Users\Administrator\.docker\machine\cache\boot2docker.i
so from https://github.com/boot2docker/boot2docker/releases/download/v19.03.1/boot2docker.iso...
完成后終端顯示 $ 提示符,此終端運行的是一個特殊的 bash 環(huán)境,而不是標(biāo)準(zhǔn)的 windows 命令提示,因為 Docker 需要 bash 環(huán)境。如下所示。
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
Start interactive shell
Administrator@USER-20180429 MINGW64 /c/Program Files/Docker Toolbox
$
- 在 $ 提示符旁邊單擊鼠標(biāo),激活終端。
如果你不熟悉終端窗口,這里有一些簡單的提示。提示符通常是美元符號,在命令行中鍵入命令按回車鍵。例如查看 Docker 工作目錄,輸入 pwd 輸出 /c/Program Files/Docker Toolbox。
Administrator@USER-20180429 MINGW64 /c/Program Files/Docker Toolbox
$ docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 19.03.1
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk sy
slog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 4.14.134-boot2docker
Operating System: Boot2Docker 19.03.1 (TCL 10.1)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 989.5MiB
Name: default
ID: K22W:UIQU:6I4G:JQJI:KVFS:K4DF:QWUC:GWQR:2N4S:5ERA:XGPJ:ZKAS
Docker Root Dir: /mnt/sda1/var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
provider=virtualbox
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
- 鍵入 docker run hello-world 命令并按回車鍵。該命令為您做了一些工作,如果一切運行良好,命令的輸出如下所示:本地沒有hello-world:latest鏡像,則從倉庫拉取,然后運行。
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:6540fc08ee6e6b7b63468dc3317e3303aae178cb8a45ed3123180328bcc1d20f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
4 附加項:添加共享目錄
默認(rèn)情況下 Docker Toolbox 只能訪問 C:\Users 目錄,并將其安裝到VM中的 /c/Users。注意:在VM路徑中,c為小寫且Users為首字母大寫。
如果您的項目位于其他位置或需要訪問主機文件系統(tǒng)上的其他目錄,則可以使用 VirtualBox UI 添加它們。
- 打開VirtualBox UI。
- 單擊“設(shè)置”齒輪,然后轉(zhuǎn)到“共享文件夾”。
- 在“機器文件夾”下選擇任何現(xiàn)有列表,然后單擊+圖標(biāo)。
選擇主機上的文件夾路徑,在VM中輸入文件夾名稱(或采用默認(rèn)值,與主機上的名稱相同),并配置所需的任何其他選項。
如果要將文件夾自動掛載到VM中,請選擇“自動掛載”,然后選擇“永久掛載”以將其視為永久共享文件夾。
- 單擊“確定”將新文件夾添加到“共享文件夾”列表中。
- 再次單擊“確定”以保存更改并退出“設(shè)置”對話框。
5 卸載 Toolbox
刪除工具箱涉及刪除它包含的所有 Docker 組件,完全卸載還包括刪除使用 Docker Machine 創(chuàng)建的本地和遠程計算機。
在某些情況下,您可能希望保留使用 Docker Machine 創(chuàng)建的計算機。例如如果您計劃將 Docker Machine 重新安裝為 Docker Desktop for Windows 的一部分,則可以繼續(xù)通過 Docker 管理這些計算機?;蛘呷绻铺峁┥躺嫌羞h程計算機,并且您計劃使用提供程序管理它們,則不希望將其刪除。因此刪除機器的步驟在此處描述為可選的。要在 Windows 上卸載 Toolbox,請執(zhí)行以下操作:
- 列出你的機器。
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
my-docker-machine virtualbox Stopped
default virtualbox Stopped
- 可選擇刪除機器,例如:
$ docker-machine rm my-docker-machine
Successfully removed my-docker-machine
此步驟是可選的,因為如果您計劃將 Docker Machine 重新安裝為 Docker Desktop for Windows 的一部分,則可以通過 Docker 導(dǎo)入并繼續(xù)管理這些計算機。
使用Window的標(biāo)準(zhǔn)過程卸載 Docker Toolbox,即通過控制面板(程序和功能)卸載程序。注意:此過程不會刪除 docker-install.exe 文件,您必須自己刪除該文件。
可選擇刪除 C:\Users<your-user>.docker 目錄。
如果要完全刪除 Docker,可以驗證卸載是否刪除了用戶路徑下的.docker目錄。如果它仍然存在,請手動將其刪除。此目錄存儲一些 Docker 程序配置和狀態(tài),例如有關(guān)已創(chuàng)建的計算機和證書的信息。您通常不需要刪除此目錄。
- 卸載 Oracle VirtualBox,它是作為 Toolbox 安裝的一部分安裝的。