使用 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