数据科学家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 ...
随机推荐
- 39、ABTestingGateway
2015 年度新增开源软件排名 TOP 100 - 开源中国社区 http://www.oschina.net/news/69808/2015-annual-ranking-top-100-new ...
- LPC18xx and LPC43xx 选型及差异
Q LPC43xx和LPC18xx有相同的USB接口以及片内USB驱动吗?A 是的. Q LPC4300和LPC1800只是内核不同吗?外设和管脚配置都完全一致?A 为LPC18xx的映像可以直接在L ...
- layer.confirm 询问框 的层遮盖
function admin_del(obj) { layer.confirm('确认要重启吗?', { btn : [ '确定', '取消' ]//按钮 }, function(index) { l ...
- stanford CS DB 课程 数据库系统实现
http://infolab.stanford.edu/db_pages/classes.html CS145: Introduction to Databases CS245: Databa ...
- delphi 实现Ribbon风格的窗体
随着office2007的兴起,微软让我们看到了Ribbon风格的窗体,现在很多软件也都开始使用Ribbon风格.那么我们如果要自己开发,应当怎么做呢?本文就是为大家解开这个疑团的. 首先,Delph ...
- delphi:临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别
临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别 TRtlCriticalSection 是一个结构体,在windows单元中定义: 是I ...
- Windows Phone本地数据库(SQLCE):10、创建数据库(翻译) (转)
这是“windows phone mango本地数据库(sqlce)”系列短片文章的第十篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的知 ...
- Java 反射机制(包括组成、结构、示例说明等内容)
第1部分 Java 反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还原“类的全部的信息”.这里“类的部分已经的信息”,可以是“类名”或“类的对象” ...
- mariadb设置初始密码
mariadb设置初始密码 CENTOS7 自带MARIADB数据库.安装的时候可以勾选安装. 当然也可以以后在CENTOS7里面添加安装. MARIADB安装后,默认是没有密码的. 我们需要给ROO ...
- 【CentOS】centos7上查看服务开机启动列表
centos7上查看服务开机启动列表 命令: systemctl list-unit-files; 点击回车,可以向下翻页查询