使用 boot2docker 设置 IPython 开发环境#

注意

这是从旧的 IPython wiki 直接复制过来的,目前正在开发中。开发指南的这一部分中的许多信息已经过时。

以下是如何在不安装任何主机机器上的软件的情况下,启动并运行IPython开发环境的说明,除了 `boot2docker <boot2docker/boot2docker>`__ 和 `docker <https://www.docker.com/>`__。

安装 boot2docker#

安装 boot2docker。根据您的环境,有多种安装方式。请参阅 boot2docker 文档

Mac OS X#

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

$ brew install boot2docker docker

初始化 boot2docker 虚拟机#

$ boot2docker init

启动虚拟机#

$ boot2docker up

boot2docker CLI 与 boot2docker VM 上的 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

运行笔记本服务器#

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

访问笔记本服务器#

在主机上,运行以下命令以获取您忘记的boot2docker VM的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