数据科学家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 ...
随机推荐
- Word中如何从某一页重新开始页码
- #ifdef #else #endif 的用法
预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作.说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译.这样做的好处是,经过处理后的代码,将会变的很精短. 关 ...
- C#编程(十四)----------构造函数
原文链接:http://blog.csdn.net/shanyongxu/article/details/46501683 构造函数 所谓的构造函数就是和类名重名的且没有返回值的方法. class P ...
- Android 自动编译、打包生成apk文件 2 - 使用原生Ant方式
from://http://blog.csdn.net/androiddevelop/article/details/11100109 相关文章列表: <Android 自动编译.打包生成apk ...
- Tomcat服务器集群与负载均衡实现
一.前言 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有 点力不从心了.另外一个常见的问题是会产生单点 ...
- python测试开发django-37.外键(ForeignKey)查询
前言 前面在admin后台页面通过设置外键,可以选择下拉框的选项,本篇主要讲解关于外键(ForeignKey)的查询 models设计 在上一篇的基础上新增一个BankName表,Card表通过外键关 ...
- IOS的唯一标识符问题(转)
引用地址 http://www.zhihu.com/question/22599526/answer/21938878 网上搜了下IOS手机标志的种类,直接引用过来. UDID [[UIDevice ...
- ListView取消和自定义分割线的方法
一.不显示分割线 XML android:footerDividersEnabled="false"即可. JAVA mListView.setDivider(null); 二.改 ...
- MVC的Ajax异步请求
@using (Ajax.BeginForm("GetTime","order",new AjaxOptions() { Confirm="你确认这么 ...
- [Ubuntu] fg、bg让你的进程在前后台之间切换
refer to : http://man.linuxde.net/jobs Linux下的fg和bg命令是进程的前后台调度命令,即将指定号码(非进程号)的命令进程放到前台或后台运行.比如一个需要长 ...