使用 boot2docker 设置 IPython 开发环境#

注意

这完全复制自旧的 IPython wiki,目前正在开发中。本开发指南的许多信息已过时。

以下是如何在您的主机上,除了 `boot2docker <boot2docker/boot2docker>`__ 和 `docker <https://www.docker.com/>`__ 之外无需安装任何东西,即可启动并运行 IPython 开发环境的说明。

安装 boot2docker#

安装 boot2docker。有多种安装方法,具体取决于您的环境。请参阅 boot2docker 文档

Mac OS X#

在安装了 Homebrew 的 Mac OS X 主机上

$ brew install boot2docker docker

初始化 boot2docker 虚拟机#

$ boot2docker init

启动虚拟机#

$ boot2docker up

boot2docker CLI 与 boot2docker 虚拟机上的 docker 守护程序通信。为此,我们必须设置一些环境变量,例如 DOCKER_HOST

$ $(boot2docker shellinit)

查看虚拟机的 IP 地址

$ boot2docker ip
192.168.59.103

从开发分支安装 ipython#

$ git clone --recursive https://github.com/ipython/ipython.git

构建 Docker 镜像#

使用克隆的 ipython 目录中的 Dockerfile 构建 Docker 镜像。

$ cd ipython
$ docker build --rm -t ipython .

运行 Docker 容器#

使用新镜像运行容器。我们将主机上的整个 ipython 源代码树挂载到容器的 /srv/ipython 目录中,以便我们在主机上对源代码所做的更改立即反映在容器中。

# change to the root of the git clone
$ cd ipython
$ docker run -it --rm -p 8888:8888 --workdir /srv/ipython --name ipython-dev -v `pwd`:/srv/ipython ipython /bin/bash

从主机上的另一个 shell 列出正在运行的容器

$ $(boot2docker shellinit)
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
f6065f206519        ipython             "/bin/bash"         1 minutes ago       Up 1 minutes        0.0.0.0:8888->8888/tcp   ipython-dev

以可编辑模式安装 IPython#

进入容器后,您需要卸载 ipython 包并以可编辑模式重新安装,以使您的开发更改反映在您的环境中。

container $ pip uninstall ipython

# pip install ipython in editable mode
container $ cd /srv
container $ ls
ipython
container $ pip install -e ipython

运行 Notebook 服务器#

container $ ipython notebook --no-browser --ip=*

访问 Notebook 服务器#

在您的主机上,如果忘记了 boot2docker 虚拟机的 IP,请运行以下命令

# on host
$ boot2docker ip
192.168.59.103

然后在您的浏览器中访问它

# browser
http://192.168.59.103:8888

作为 Mac 上的快捷方式,您可以在终端窗口中运行以下命令(或将其设为 bash 别名)

$ open http://$(boot2docker ip 2>/dev/null):8888