Windows下的Docker Machine - 如何设置你的Docker主机

最近我一直在折腾Docker。原因有很多,可以肯定的是,我喜欢折腾最新的技术,而且最好能帮忙实现一到两个示例的demo出来。和我的其他同事们不一样的是,我在Windows上运行我的设,如同大多数中间件开发人员一样。所以,如果你按照Arun的博客关于“ Docker Machine to Setup Docker Host ”,你可能已经试图在Windows上进行尝试了(译者注:Dcoker Machine是Docker的官方项目,负责在多平台上快速安装Docker环境,此处博客内容若无法显示,可以在云+社区查看其他的docker相关教程)。这里给出使用Docker Machine管理和启动Docker主机的终极简便指南。

Docker Machine

通过Machine,您可以在您的计算机,云提供商以及您自己的数据中心内部创建Docker主机。它能创建服务器,在其上安装`Docker,并配置Docker客户端与之通信。在此之前,基本上不必在机器上安装任何东西。这比 以前手动安装boot2docker要容易得多 。所以,来尝试一下吧。

在开始使用Docker或Machine之前,还有一件事情必须要完成。那就是去获取 Windows的Git (又名msysgit)。其中包含有各种有用的unix工具,无论如何你都需要它。

先决条件 - 打包安装方案

第一个是安装Windows Boot2docker分布 ,可以参考 我在早些时候的博客。它包含以下软件的配置,已经准备好为你服务:

  • VirtualBox
  • Docker Windows客户端

先决条件 - 分拆单独安装

出于由于各种原因,我不太喜欢boot2docker安装程序。主要是因为我想知道它实际在我的设备上实际上完成了什么操作。于是我尝试了一下,如果你决定不使用打包安装方案,那么这里就是分拆单独安装的方法。从虚拟化解决方案开始。我们在Windows上必需要安装类似的东西,因为它不能运行Linux,而这就是Docker的基础。至少现在如此。所以,获取 VirtualBox, 并确保您的系统上正确安装了版本4.3.18VirtualBox-4.3.18-96516-Win.exe,105 MB)。警告:在Virtualbox中运行Windows本身时会出现一个奇怪的问题。您可能会 遇到一个启动主机的问题

完成上述步骤后,就要获取DockerWindows客户端。可以从测试服务器中直接下载(docker-1.6.0.exe,x86_64,7.5MB)。重命名为“docker”,并将其放到您选择的文件夹中(这里推荐使用c:\ docker \。接下来还需要下载Docker Machine,这是另一个单独的可执行文件(docker-machine_windows-amd64.exe,11.5 MB),重命名为“docker-machine”并放到同一个文件夹中,然后把这个文件夹添加到PATH中:

set PATH =%PATH%; C:\ docker

推荐你添加PATH环境变量,这样可以减少大量的输入。那么,你已经准备好创建第一台机器管理的Docker主机。

使用Machine创建Docker主机

一切只需要一个简单的命令:

docker-machine create --driver virtualbox dev

输出结果应该是:

←[34mINFO←[0m[0000] Creating SSH key...
←[34mINFO←[0m[0001] Creating VirtualBox VM...
←[34mINFO←[0m[0016] Starting VirtualBox VM...
←[34mINFO←[0m[0022] Waiting for VM to start...
←[34mINFO←[0m[0076] "dev" has been created and is now the active machine.
←[34mINFO←[0m[0076] To point your Docker client at it, run this in your shell: eval "$(docker-machine.exe env dev)"

这意味着,您刚刚使用VirtualBox提供程序和名称“dev”创建了一个Docker主机。现在你需要找出主机正在运行在哪个IP地址。

docker-machine ip
192.168.99.102

如果你刚才配置了环境变量,客户端所需要的就更简单,只需使用下面的命令:

docker-machine env dev
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH="C:\\Users\\markus\\.docker\\machine\\machines\\dev"
export DOCKER_HOST=tcp://192.168.99.102:2376

这里输出了Linux样式的环境变量定义。你需要做的仅仅是把“export”关键字改成“set”,删除“和双反斜线,就万事俱备了。

C:\Users\markus\Downloads>set DOCKER_TLS_VERIFY=1
C:\Users\markus\Downloads>set DOCKER_CERT_PATH=C:\Users\markus\.docker\machine\machines\dev
C:\Users\markus\Downloads>set DOCKER_HOST=tcp://192.168.99.102:2376

来测试下Docker客户端

现在我们开始在新创建的主机上运行WildFly

docker run -it -p 8080:8080 jboss/wildfly

观察下载的容器,并通过将浏览器重定向到http://前文提示ip:8080/来检查它是否正在运行 。

祝贺您成功在Windows上使用Maschine安装了第一台Docker主机。

本文的版权归 李郑 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏owent

[记录]虚拟硬盘的压缩|磁盘写零

用虚拟机软件虚拟出来的硬盘文件会随着使用而变大,因为磁盘碎片的产生,这个文件里也有很多的没用的空闲空间,为了节省空间,可以对虚拟硬盘文件进行压缩。

1014
来自专栏散尽浮华

nginx反向代理中proxy_set_header 运维笔记

Nginx proxy_set_header:即允许重新定义或添加字段传递给代理服务器的请求头。该值可以包含文本、变量和它们的组合。在没有定义proxy_set...

5466
来自专栏前端知识分享

第160天:Http协议的详细总结

超文本传输协议(HyperText Transfer Protocol),缩写HTTP。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform...

522
来自专栏java思维导图

http超文本协议,让http不再难懂

先来个导图,再来分解: ? 导图详情: 协议 HyperText Transfer Protocol,超文本传输协议 一个无状态的请求/响应协议 是因特网上应...

2897
来自专栏noteless

windows查看端口占用 windows端口占用 查找端口占用程序 强制结束端口占用 查看某个端口被占用的解决方法 如何查看Windows下端口占用情况

2.查询指定的端口被占用的情况   上图中本地地址一列中的冒号:  后面的数字就是端口号

613
来自专栏安恒信息

sVirt:SELinux防护KVM安全

  SELinux最初是由美国安全局NSA发起的项目,是基于强制访问控制(MAC)策略的,为每一个主体和客户都提供了个虚拟的安全“沙箱”,只允许进程操作安全策略...

3593
来自专栏淡定的博客

axios

722
来自专栏软件测试经验与教训

linux常用命令

2824
来自专栏Python与爬虫

爬虫入门到精通-HTTP协议的讲解

什么是HTTP协议? 引用自维基百科 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一...

3357
来自专栏小白客

Web前端基础【4】--HTTP标准

HTTP协议(超文本传输协议),是用于从www服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,减少网络传输。 一:HTTP请求过程 HTTP协议...

3427

扫码关注云+社区