内容纲要

在 windows 中使用 docker 需要安装 docker toolbox,docker toolbox 提供一个 virtualbox 的 linux 虚拟机,然后在 linux 中安装 docker,在 linux 虚拟机中使用 docker 命令行。在 windows shell 下使用 docker-machine 命令行。

我们构建了 default 虚拟机后,启动虚拟机

docker-machine start default

登录到 linux

docker-machine ssh default

登录之后写一个 Dockerfile 构建 container 镜像

# Dockerfile for `wyrover-python`.
#
# This Dockerfile contains a development environment for doing all of the
# necessary python work.

FROM python:2.7.12-wheezy

MAINTAINER wyrover@gmail.com

RUN apt-get update && \
    apt-get install -y python-numpy \
                       python-scipy \
                       python-matplotlib \
                       ipython \                       
                       python-pandas \
                       python-sympy \
                       python-nose \
    && apt-get clean \
    && apt-get autoclean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN mkdir -p /app
WORKDIR /app
ADD . /app
RUN pip install -r requirements.txt
CMD ["bash"]

这个 Dockerfile 虽然通过 apt-get intall 安装了一些库,但是这些库过于陈旧,还得使用 pip install 更新安装相关的 python 库。 这个 container 默认启动 bash,稍后我们再通过命令行启动 jupyter(notebook)。

requirements.txt

jinja2
influxdb
pyyaml
numpy
scipy
pandas 
matplotlib
scikit-learn
scikit-image
mock
jupyter
xlrd
xlwt
openpyxl
xlutils
lxml
html5lib
tushare
beautifulsoup4
scrapy
poster
selenium
mysql-python
pysqlite
pymongo
flask
requests
jieba
pygal
chaco

启动容器, 将当前目录下的 app 目录映射到容器 /app 目录下, 并映射容器端口到虚拟机端口 8888,虚拟机 IP 通常为 192.168.99.100。稍后通过 http://192.168.99.100:8888/ 来访问 notebook。

docker run -p 8888:8888 -v $(pwd)/app:/app -e PASSWORD=admin -i -t wyrover/python

启动容器后,我们已经在容器的 bash 下,运行 notebook

jupyter notebook --no-browser --port 8888 --ip=*

打开 http://192.168.99.100:8888/ 访问。

在 notebook 编写代码,如果还想将 windows 的目录挂载到容器中,请看 在 windows 下用 docker toolbox 搭建开发环境

量化计算环境也是 python 科学计算环境,要安装的包有

  • numpy 矩阵运算
  • scipy 科学计算
  • pandas 金融计算
  • matplotlib 图表
  • xlrd 支持 pandas 读写 excel 文件
  • tushare 中国金融市场数据获取支持库

如果还想再安装其他库,启动容器后,在容器 bash 下 安装即可,然后提交保存容器。

安装个机器学习库

pip install scikit-learn

在 linux 虚拟机下查询运行的 docker container 实例。

docker@default:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
f13614c2cd85        wyrover/python      "bash"              6 hours ago         Up 6 hours          0.0.0.0:8888->8888/tcp   gigantic_swanson

提交保存 container 镜像

docker commit f13614c2cd85 wyrover/python

国内几个在线的量化计算环境好像都是在 notebook 的基础上搭建的,提供了 A 股的市场数据,并且用 pandas 之类的库来计算数据,跑回归测试。

国内的几个在线量化平台

几本书

links

发表评论

电子邮件地址不会被公开。 必填项已用*标注