使用 boot2docker 设置 IPython 开发环境#

注意

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

以下是如何启动并运行 IPython 开发环境的说明,而无需在主机上安装任何内容,除了 `boot2docker <boot2docker/boot2docker>`__ 和 `docker <https://www.docker.net.cn/>`__。

安装 boot2docker#

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

Mac OS X#

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

$ brew install boot2docker docker

初始化 boot2docker VM#

$ boot2docker init

启动 VM#

$ boot2docker up

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

$ $(boot2docker shellinit)

要查看 VM 的 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 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