分享

docker toolbox在windows下如何为docker命令配置环境变量

 浸心阁 2016-02-16

docker 1.8版本后,windows下有新版docker承载客户端docker toolbox替代了原来的boot2docker

docker toolbox安装后,运行过程中可以配置一系列windows环境变量,让windows命令行终端中也能运行docker命令,就和linux下直接运行docker命令一样的效果,激动吧。但遗憾的是并不傻瓜化,toolbox在start虚拟机后,还需要运行一些命令,才能在windows终端中直接运行docker命令:


1、启动一个docker虚拟机(本处暂定容器名为default),注意toolbox和boot2docker不一样的地方在boot2docker始终只有一个默认虚拟机,而于toolbox可以初始化多个虚拟机了,可以分散存储镜像不用担心硬盘空间的问题

>docker-machine start default

结果:

Starting VM...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

docker主动提示下一步应该进行的操作,其实也就是本文所说的配置环境变量

如果不配置,尝试一下直接运行

>docker ps

报错:

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认为你并没有启动虚拟机

2、按照上一步操作docker的提示运行命令

>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)"

显示结果就是你应该运行来配置环境变量的命令,docker帮你打印出来方便下一步执行

但是客官看得到,命令是export,这是linux下配置环境变量的命令而不是windows的

3、记得docker安装的时候有个安装可选项MSSYS-git UNIX tools吗,这个工具就是让你在windows下运行linux命令的工具,其实就是一堆linux命令的windows版,现在进入sh环境

>sh

显示:

sh-3.1$

现在可以运行上一步的操作提示

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"

这样环境变量就配置好了,但是复制黏贴运行4条命令不觉得麻烦吗,其实docker已经告诉你怎么操作比较方便了

sh-3.1$ eval "$(docker-machine env default)"

一条语句搞定

4、现在在sh环境下再次尝试运行:

>docker ps

CONTAINER ID        IMAGE               COMMAND
e3fc159255c2        yohobuysns          "/bin/bash"               ................
b35da18c020c        redis               "/entrypoint.sh redis"    ...................
84ca9ffb72ff        memcached           "memcached"            ....................

大功告成


注意:在sh环境下配置好环境变量后,就不要再退出sh环境了,退出运行docker命令的话客户端又会报docker进程未启动的错,只能在sh环境中使用docker命令。总结使用起来还是太繁杂,不够傻瓜化,当然docker的底层lxc本来就是linux的独享,能在windows下经由虚拟机运行起来已经不错了,希望以后通过和微软的合作能打通windows底层,让docker在windows下的运行也和linux下一样便捷。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多