一垃你、前言
由于本機使用的是win10家庭版操作系統(tǒng),無法直接Docker for Windows安裝喂很,因此只好使用Docker Toolbox惜颇。在安裝過程中遇到了不少問題,花費了不少時間少辣,才把docker啟動起來凌摄。在此記錄一下過程,以供參考漓帅。
二锨亏、準備工作
2.1 操作系統(tǒng)
要安裝docker痴怨,首先要確保操作系統(tǒng)是64位且win7以上的版本。如果操作系統(tǒng)是win10 pro器予,可以直接使用Docker for Windows安裝浪藻。本文是基于win10 家庭版
安裝。
2.2 開啟虛擬化
開機進入BIOS乾翔,找到“Intel Virtual Technology”類似的選項爱葵,設置為Enabled。
注:
如果安裝有360安全衛(wèi)士反浓,最好先關閉它的核晶保護引擎
萌丈。步驟:打開360安全衛(wèi)士的主面板,點擊左下角的防護中心
雷则,在彈出的頁面中辆雾,點擊右上角一個像勛章的圖標,關閉核晶保護引擎巧婶。
2.3 關閉Hyper-V
打開控制面板
乾颁,依次點擊程序
-> 程序和功能
-> 啟用或關閉Windows功能
,找到Hyper-V
艺栈,不要勾選英岭,點擊確定。如果沒找到Hyper-V湿右,就不用管了诅妹。
2.4 安裝PowerShell
此步驟可以先不用做,如果后面用到了毅人,再來安裝不遲吭狡。
安裝方法:https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-6
三、下載并安裝Docker Toolbox
3.1 下載Docker Toolbox
下載地址:https://docs.docker.com/toolbox/toolbox_install_windows/丈莺。
這個頁面除了可以下載Docker Toolbox外划煮,還有Docker Toolbox的安裝教程〉薅恚可以先自行按上面的步驟進行安裝弛秋,若在之后啟動docker時遇到了問題,再回來看剩下的部分也不遲俐载。
3.2 安裝Docker Toolbox
雙擊Docker Toolbox.exe, 一路點擊NEXT
, 安裝路徑我設置的是E:\DockerToolbox
蟹略。
安裝完成后,會出現如下幾個圖標:
雙擊Docker Quickstart Terminal
, 如果出現如下頁面遏佣,說明Docker已啟動成功挖炬,后面的內容就不需要再看了。
四状婶、啟動Docker
4.1 創(chuàng)建docker machine
打開power shell(如果還未安裝意敛,參考2.4)馅巷,進入Docker Toolbox的安裝目錄,可以看到這個下面有docker-machine.exe
草姻、boot2docker.iso
和start.sh
幾個文件令杈。
在power shell中執(zhí)行如下命令:
$ docker-machine.exe create --driver virtualbox --virtualbox-boot2docker-url=boot2docker.iso default
輸出如下:
注:docker-machine.exe雖然是個可執(zhí)行文件,直接雙擊卻沒什么用碴倾,需要指定參數來配合。
4.2 啟動docker machine
在power shell中執(zhí)行start.sh掉丽,會新彈出一個bash窗口跌榔,輸出如下信息:
$ ./start.sh
注:start.sh里面涉及到一些文件路徑,這些文件路徑是windows的捶障。使用bash來執(zhí)行可能會出現找不到文件的問題僧须。
比如E:\DockerToolbox\docker-machine.exe
需改成/mnt/e/DockerToolbox/docker-machine.exe
才能被bash正確的找到。
之所以說是可能會出現项炼,是因為我在使用power shell創(chuàng)建default docker machine后担平,直接在bash中執(zhí)行start.sh,結果也能正常運行了锭部。暂论。。
所以拌禾,在安裝過程中取胎,為保險起見,還是使用power shell吧湃窍。
4.3 使用docker
docker machine啟動之后闻蛀,就可以在bash里面正常使用docker的相關命令了。
4.4 關閉docker machine
執(zhí)行如下命令:
$ docker-machine.exe stop default
注:也可以使用Oracle VM VirtualBox來關閉您市。Oracle VM VirtualBox是用來管理docker machine的圖形界面工具觉痛,在步驟3.2中可以看到。
4.5 刪除docker machine
執(zhí)行如下命令:
$ docker-machine.exe rm default
也可以使用Oracle VM VirtualBox來刪除茵休。
五薪棒、鏡像加速
可以通過修改鏡像倉庫地址,加速docker 鏡像的拉取泽篮。
執(zhí)行docker-machine ssh default
$ docker-machine ssh default
( '>')
/) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY.
(/-_--_-\) www.tinycorelinux.net
設置鏡像地址
接下來執(zhí)行sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=https://registry.docker-cn.com |g" /var/lib/boot2docker/profile
盗尸,
此處鏡像地址使用的是https://registry.docker-cn.com,可自行更換帽撑。
執(zhí)行完畢后泼各,執(zhí)行exit退出。
docker@default:~$ cat /var/lib/boot2docker/profile
EXTRA_ARGS='
--label provider=virtualbox
'
CACERT=/var/lib/boot2docker/ca.pem
DOCKER_HOST='-H tcp://0.0.0.0:2376'
DOCKER_STORAGE=aufs
DOCKER_TLS=auto
SERVERKEY=/var/lib/boot2docker/server-key.pem
SERVERCERT=/var/lib/boot2docker/server.pem
docker@default:~$
docker@default:~$ sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=https://registry.docker-cn.com |g" /var/lib/boot2docker/profile
docker@default:~$ cat /var/lib/boot2docker/profile
EXTRA_ARGS='--registry-mirror=https://registry.docker-cn.com
--label provider=virtualbox
'
CACERT=/var/lib/boot2docker/ca.pem
DOCKER_HOST='-H tcp://0.0.0.0:2376'
DOCKER_STORAGE=aufs
DOCKER_TLS=auto
SERVERKEY=/var/lib/boot2docker/server-key.pem
SERVERCERT=/var/lib/boot2docker/server.pem
docker@default:~$ exit
重啟docker-machine
$ docker-machine restart default
Restarting "default"...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(default) Waiting for an IP...
Waiting for SSH to be available...
Detecting the provisioner...
Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
六亏拉、安裝問題一覽
問題1
雙擊Docker Quickstart Terminal扣蜻,提示windows 正在查找bash.exe逆巍。如果想親自查找文件,請點擊“瀏覽”莽使。
問題原因
一般出現這個問題锐极,是因為之前已經安裝過了git,且bash.exe的路徑與Docker Toolbox中不一致導致的芳肌。
解決辦法
右擊Docker Quickstart Terminal
的圖標灵再,修改前一段bash的路徑。
問題2
雙擊Docker Quickstart Terminal
亿笤,bash窗口一閃而過翎迁。
問題原因
窗口一閃而過,一般是程序運行出錯了净薛,需要找到錯誤信息汪榔。通過問題1知道這個快捷方式是使用bash執(zhí)行start.sh,所以考慮直接在bash中執(zhí)行start.sh肃拜。打開bash.exe痴腌,執(zhí)行start.sh,發(fā)現輸出如下一段文字:
Docker Machine is not installed. Please re-run the Toolbox Installer and try again.
使用編輯器打開start.sh燃领,會發(fā)現如下兩端代碼:
export PATH="$(win_to_unix_path "${DOCKER_TOOLBOX_INSTALL_PATH}"):$PATH"
VM=${DOCKER_MACHINE_NAME-default}
DOCKER_MACHINE="${DOCKER_TOOLBOX_INSTALL_PATH}\docker-machine.exe"
// ... 省略
if [ ! -f "${DOCKER_MACHINE}" ]; then
echo "Docker Machine is not installed. Please re-run the Toolbox Installer and try again."
exit 1
fi
發(fā)現是因為找不到docker-machine.exe報的錯士聪。docker-machine.exe的路徑跟DOCKER_TOOLBOX_INSTALL_PATH這個變量有關。查看環(huán)境變量柿菩,發(fā)現確實沒有DOCKER_TOOLBOX_INSTALL_PATH戚嗅。
解決辦法
第一個辦法是直接在start.sh里面修改DOCKER_MACHINE的地址,但這種方式治標不治本枢舶。
第二個辦法是手動創(chuàng)建系統(tǒng)變量DOCKER_TOOLBOX_INSTALL_PATH懦胞,也是治標不治本
第三個辦法是使用docker-machine.exe創(chuàng)建一個docker machine(參考4.1),docker machine創(chuàng)建完成之后凉泄,環(huán)境變量里就會有DOCKER_TOOLBOX_INSTALL_PATH躏尉。
問題3
執(zhí)行start.sh報與boot2docker.iso
相關的錯誤:
Running pre-create checks...
(default) Unable to get the local Boot2Docker ISO version: Did not find prefix "-v" in version string
(default) Default Boot2Docker ISO is out-of-date, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v18.09.0
(default) Downloading C:\Users\zhangcm\.docker\machine\cache\boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v18.09.0/boot2docker.iso...
Error with pre-create check: "Get https://github-production-release-asset-2e65be.s3.amazonaws.com/14930729/6ae43280-e2b8-11e8-8e32-e857d71a28cd?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190105%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190105T054430Z&X-Amz-Expires=300&X-Amz-Signature=c16df60be023a5e71aa4091d3be41418973da7b46029860b0c7817ef4c6aac22&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dboot2docker.iso&response-content-type=application%2Foctet-stream: dial tcp 127.0.0.1:443: connectex: No connection could be made because the target machine actively refused it."
Looks like something went wrong in step ′Checking if machine default exists′... Press any key to continue...
解決方法
其實Docker Toolbox安裝路徑下已經有boot2docker.iso文件了。參考4.1后众,創(chuàng)建一個docker machine胀糜。然后再執(zhí)行start.sh。
如果是提示boot2docker.iso的版本過舊蒂誉,則需要下載一個新版本教藻。
下載地址:https://github.com/boot2docker/boot2docker/releases。
選擇一個版本右锨,點擊boot2docker.iso
文件下載括堤。點擊后會自動跳轉到另一個域名(https://github-production-release-asset-2e65be.s3.amazonaws.com),需翻墻。