数据科学家Docker历险记(1):windows下环境搭建
原文:http://www.xueqing.tv/cms/article/247
Docker是最近炒得很火热的一门技术,在网上可以找到关于它的介绍文章,比如《Docker到底是什么?为什么它这么火!》和《开发漫谈:千万别说你不了解Docker!》。但这些文章都是从IT开发人员的角度来介绍的,让我们这些搞数据分析的人摸不着头脑。
其实Docker技术也可以用在数据分析和数据产品的开发中,比如Harry Zhu写的打造数据产品的快速原型:Shiny的Docker之旅,以及肖楠在统计之都海外沙龙介绍的用docker技术和R做可重复研究的liftr包。
个人觉得,Docker技术能给数据科学家带来的好处之一,是能够帮助我们快速搭建分析中所用到的环境,小到不同版本的R,大到hadoop、Spark集群
本系列文章其实就是想从数据科学家的角度,跟大家一起来探索Docker技术。第一篇讲的是在Windows下搭建Docker环境,后面将陆续讲解怎么用Docker搭建RStudio Server、Hadoop、Spark等环境
文章末尾还有配套的视频教程,里面有更多细节的演示。
下载安装Docker Toolbox
Docker Toolbox的官方网站是https://www.docker.com/products/docker-toolbox,选Windows版的下载,如果下载不了,可以点这里下载。
下载完之后,双击程序,开始安装,跟其他软件的安装一样,但有一点需要注意,当出现下面的画面时,要把 Install VirtualBox with NDIS5 driver[default NDIS6] 这个选项勾上

配置Git Bash
安装Docker Toolbox时安装的Docker Quickstart Terminal和Kitematic图形界面并没有用,我们就别折腾了,还是用Git Bash来启动Docker吧。在安装Docker Toolbox时也同时安装了Git for Windows,我们现在只会用到里面的Git Bash,它是类似Linux的命令行终端,在里面可以用很多Linux命令,比如ls、mv等,对Linux命令不熟的可以看看我们网站上的《Linux命令行入门》课程。在开始菜单里可以看到Git Bash的快捷方式

在使用Docker前,要先创建docker machine,它其实是台虚拟机,不过在使用它的时候,你可能根本察觉不出来它是虚拟的。默认情况下,docker machine的所有文件都会保存在用户的根目录下,一般是在C盘,如果就用默认的位置,C盘的空间会越来越小,所以最好还是换个地方。
我们要修改Bash的配置文件来修改默认的docker machine保存位置,打开Bash以后,执行notepad .bash_profile,会调用记事本打开配置文件.bash_profile,如果不存在该文件,就选择新建这个文件。(这里假设你不会用bash里的编辑器vim,如果你会用vim,就执行命令vim .bash_profile )
假设我想把docker machine保存在D:\docker,那么先新建这个目录,然后在.bash_profile里添加下面这行
export MACHINE_STORAGE_PATH='D:\docker'
创建docker machine
在使用docker的时候,会需要从docker的网站下载镜像文件,下载速度可能会很慢。还好阿里云为我们提供了加速器。登录阿里云的开发者平台,进入管理中心
点左侧导航栏的加速器,然后在右边选Windows

阿里云已经给我们提供了创建装有docker环境的linux虚拟机的语句,但是这条语句不能直接用,因为我们在前面已经修改了虚拟机默认的位置。需要在这条命令里加上 --storage-path,或者简写为-s,后面加上路径,像下面这样:
docker-machine -s "D:\docker" create --engine-registry-mirror=https://s5q5zo4h.mirror.aliyuncs.com -d virtualbox default
但是上面这条命令是我的账号生成的,你需要自己注册个阿里云账号,找到相应的命令
回到bash里执行上面的语句创建docker machine,发现因为功夫墙的阻拦,无法下载boot2docker.iso文件,程序中断。幸好在Docker Toolbox的安装目录下就包含了这个文件,把它复制到D:\docker\cache下

再来创建docker machine就成功了

这台docker machine创建后就启动了,如果下次我们再打开电脑,想要启动docker machine,可以打开Git Bash,然后执行
docker-machine start
来启动docker machine。
进入docker环境
我们现在的Bash还在Windows里,接下来执行
docker-machine ssh default
如果看到下面的画面,那么恭喜你,你已经进入了docker的世界!

这其实是通过ssh登录到了VirtualBox虚拟机里的Linux系统。如果觉得Git Bash提供的终端太简陋,你也可以用Xshell、SecureCRT等SSH工具,在Git Bash里执行
docker-machine ip default

可以看到,docker machine的IP是192.168.99.100,用SSH工具登录它,用户名是docker,密码是tcuser
下一讲,我会跟大家一起探索利用Docker来搭建RStudio Server环境。
Docker学习资料
数据科学家Docker历险记(1):windows下环境搭建的更多相关文章
- Redis的简单介绍及在Windows下环境搭建
简单介绍 1,Redis是什么 最直接的还是看官方的定义吧. Redis is an open source (BSD licensed), in-memory data structure stor ...
- redis cluster以及master-slave在windows下环境搭建
一.redis cluster环境搭建: 1.了解Redis Cluster原理: 详细了解可参考:http://doc.redisfans.com/topic/cluster-tutorial.ht ...
- Nginx系列~概念与windows下环境搭建
概述 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sys ...
- Android Studio JNI/NDK 编程(二) Windows 下环境搭建 demo 开发
环境 windows 8 (注:其实 Linux 开发可能更方便) Android Studio 2.1; 一 . 下载 安装android-ndk开发包 地址:链接:http://pan.baid ...
- Elasticsearch、Kibana Windows下环境搭建
Elasticsearch 簡介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是 ...
- pixhawk原生固件在Windows下环境搭建笔记
首先参考了以下几篇博客 博客1:https://zhuanlan.zhihu.com/p/25198079 博客2:http://blog.csdn.net/oqqenvy12/article/det ...
- Google Web Toolkit(GWT) 在windows下环境搭建
1.什么是GWT? Google Web Toolkit(简称GWT,读作/ˈɡwɪt/),是一个前端使用JavaScript,后端使用Java的AJAX framework,以Apache许可证2. ...
- Egret入门(二)--windows下环境搭建
准备材料 安装Node.js TypeScript编辑器 HTTP服务器(可选) Chorme(可选) Egret 安装Node.js 打开www.nodejs.org 下载安装(全部next,全默认 ...
- Windows下快速搭建安卓开发环境android-studio
Windows下快速搭建安卓开发环境android-studio 发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 安卓 搭建 Android Windows 快速 环境 Studi ...
随机推荐
- 使用 IntraWeb (17) - 基本控件之 TIWRadioButton、TIWRadioGroup、TIWCheckBox
TIWRadioButton //单选 TIWRadioGroup //单选组 TIWCheckBox //复选 TIWRadioButton 所在单元及继承链: IWCompRadioButton. ...
- OpenVPN推送默认路由表
根据官方Server配置文件:https://github.com/OpenVPN/openvpn/blob/master/sample/sample-config-files/server.conf ...
- 通过Windows Compatibility Pack补充.net core中缺失的api
把项目往.net core上迁移的时候,一个最大的问题就是和.net framework相比,有一部分api缺失.它主要分为两类: Windows 独有的api,如注册表 未完成的功能,如System ...
- 利用 PHP 导出 Git 某个分支下,新增或修改过的文件
使用 SVN 作为版本控制的时候,整理过一个 导出文件脚本:利用 PHP 导出 SVN 新增或修改过的文件 现在换成了 Git,整理出类似的脚本: [第一版]git.php <?php /** ...
- Direct3d 设备丢失 (device lost) (转载)
转:http://blog.csdn.net/kuangfengwu/article/details/7674074 1.什么时候设备丢失 一个Direct3D设备, 有两种状态: 操作状态或丢失状态 ...
- Linux Delay Accounting
https://andrestc.com/post/linux-delay-accounting/ Ever wondered how long is your program spending wh ...
- 在vs2012下编译出现Msvcp120d.dll 丢失的问题
之前在vs2012下编译一个opencv程序时,一直出现msvcp120d.dll文件丢失的提示信息,最初会在网上找dll下载,将其拖入系统文件夹再进行regsvr32命令操作,结果都没有解决错误,甚 ...
- Windows Phone本地数据库(SQLCE):14、删除数据(翻译)
这是“windows phone mango本地数据库(sqlce)”系列短片文章的最后一篇第十四篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需 ...
- Windows Phone本地数据库(SQLCE):2、LINQ to SQL(翻译)(转)
首先.要说到的是,windows phone 7.1上基本的数据库功能是SQL Compact关于Mango的一个实现,使用linq to sql访问存储在数据库上的数据. 1.LINQ to S ...
- 用TexturePacker打图集用于UGUI中
UGUI的原理则是,让开发者彻底模糊图集的概念,让开发者不要去关心自己的图集.做界面的时候只用小图,而在最终打包的时候unity才会把你的小图和并在一张大的图集里面.Editor->Projec ...