数据科学家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 ...
随机推荐
- .NET开源了,Visual Studio开始支持 Android 和 iOS 编程并自带Android模拟器
北京时间今天凌晨的大会上,多少程序员的假想成为现实..NET 开源,集成 Clang 和 LLVM 并且自带 Android 模拟器,这意味着 Visual Studio 这个当下最好没有之一的 ID ...
- Serial Wire Debug (SWD) Interface -- PSoc5
PSoC 5 supports programming through the serial wire debug (SWD) interface. There are two signals in ...
- JavaScript:动态代理之远程代理
背景 2008 第一次使用 AJAX 的时候好像使用的是 AJAX.NET,该组件支持为服务器 C# 类型提供 JS 代理,当时不是十分的明白.设计模式中有代理模式,不过真正需要我们手工写代理的次数却 ...
- 推荐一款移动端的web UI控件 -- mobiscroll
用mobiscroll 可实现ios系统自带的选择器控件效果,支持几乎所有的移动平台(iOS, Android, BlackBerry, Windows Phone 8, Amazon Kindle) ...
- cocos2d-x绑lua的开发环境
2013年是手游开发井喷的一年,也是手游市场竞争最为激烈的一年,ios市场除了刷榜.刷榜,还是刷榜,而android有点像黑市的感觉,水太深(很多渠道商已经从上游控制了流量的入口).而cocos2d- ...
- Android让手机主动亮屏的代码
我们在做电子阅读器的时候可能会要求屏幕保持常亮,不希望它熄灭.它的原理也是利用系统服务,来操纵底层设备. 一.系统服务——PowerManager PowerManager.java就是管理我们电源方 ...
- 【周年庆】china-pub 14周年庆感恩回馈四波狂热来袭
活动主题:china-pub 14周年庆感恩回馈四波狂热来袭活动说明:[第1波]电子书免费抢!10万好书 65折封顶! 活动规则: 1.活动期间内凡 ...
- Asp.Net Core WebAPI入门整理(四)参数获取
一.总结整理,本实例对应.Net Core 2.0版本 1.在.Net Core WebAPI 中对于参数的获取及自动赋值,沿用了Asp.Net MVC的有点,既可以单个指定多个参数,右可以指定Mo ...
- Promise is rejected: Error: 2 UNKNOWN: error starting container: API error (404): {"message":"network build-blockchain-insurance-app_default not found"}出错的解决方案
错误描述: docker logs web 现象: > blockchain-for-insurance@2.1.0 serve /app > cross-env NODE_ENV=pro ...
- Failed to register: Error: fabric-ca request register failed with errors [[{"code":0,"message":"No identity type provided. Please provide identity type"}]]解决方案
I try to run sample application as stated here : http://hyperledger-fabric.readthedocs.io/en/release ...