docker 1.8版本后,windows下有新版docker承載客戶端docker toolbox替代了原來的boot2docker
docker toolbox安裝后,運(yùn)行過程中可以配置一系列windows環(huán)境變量,讓windows命令行終端中也能運(yùn)行docker命令,就和linux下直接運(yùn)行docker命令一樣的效果,激動吧。但遺憾的是并不傻瓜化,toolbox在start虛擬機(jī)后,還需要運(yùn)行一些命令,才能在windows終端中直接運(yùn)行docker命令:
1、啟動一個(gè)docker虛擬機(jī)(本處暫定容器名為default),注意toolbox和boot2docker不一樣的地方在boot2docker始終只有一個(gè)默認(rèn)虛擬機(jī),而于toolbox可以初始化多個(gè)虛擬機(jī)了,可以分散存儲鏡像不用擔(dān)心硬盤空間的問題
>docker-machine start default
結(jié)果:
Starting VM...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
docker主動提示下一步應(yīng)該進(jìn)行的操作,其實(shí)也就是本文所說的配置環(huán)境變量
如果不配置,嘗試一下直接運(yùn)行
>docker ps
報(bào)錯(cuò):
Get http://127.0.0.1:2375/v1.20/containers/json: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
docker認(rèn)為你并沒有啟動虛擬機(jī)
2、按照上一步操作docker的提示運(yùn)行命令
>docker-machine env default
顯示:
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\Administrator\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"
顯示結(jié)果就是你應(yīng)該運(yùn)行來配置環(huán)境變量的命令,docker幫你打印出來方便下一步執(zhí)行
但是客官看得到,命令是export,這是linux下配置環(huán)境變量的命令而不是windows的
3、記得docker安裝的時(shí)候有個(gè)安裝可選項(xiàng)MSSYS-git UNIX tools嗎,這個(gè)工具就是讓你在windows下運(yùn)行l(wèi)inux命令的工具,其實(shí)就是一堆linux命令的windows版,現(xiàn)在進(jìn)入sh環(huán)境
>sh
顯示:
sh-3.1$
現(xiàn)在可以運(yùn)行上一步的操作提示
sh-3.1$ export DOCKER_TLS_VERIFY="1"
sh-3.1$ export DOCKER_HOST="tcp://192.168.99.100:2376"
sh-3.1$ export DOCKER_CERT_PATH="C:\Users\Administrator\.docker\machine\machines\default"
sh-3.1$ export DOCKER_MACHINE_NAME="default"
這樣環(huán)境變量就配置好了,但是復(fù)制黏貼運(yùn)行4條命令不覺得麻煩嗎,其實(shí)docker已經(jīng)告訴你怎么操作比較方便了
sh-3.1$ eval "$(docker-machine env default)"
一條語句搞定
4、現(xiàn)在在sh環(huán)境下再次嘗試運(yùn)行:
>docker ps
CONTAINER ID IMAGE COMMAND
e3fc159255c2 yohobuysns "/bin/bash" ................
b35da18c020c redis "/entrypoint.sh redis" ...................
84ca9ffb72ff memcached "memcached" ....................
大功告成
注意:在sh環(huán)境下配置好環(huán)境變量后,就不要再退出sh環(huán)境了,退出運(yùn)行docker命令的話客戶端又會報(bào)docker進(jìn)程未啟動的錯(cuò),只能在sh環(huán)境中使用docker命令。總結(jié)使用起來還是太繁雜,不夠傻瓜化,當(dāng)然docker的底層lxc本來就是linux的獨(dú)享,能在windows下經(jīng)由虛擬機(jī)運(yùn)行起來已經(jīng)不錯(cuò)了,希望以后通過和微軟的合作能打通windows底層,讓docker在windows下的運(yùn)行也和linux下一樣便捷。
聯(lián)系客服