Docker – 如何将新的python依赖关系添加到现有的docker镜像?

我是docker的新手。

我在使用我的Windows 10操作系统中的tensorflow docker时遇到了困难。

当我跟随Udacity深入的学习过程时,我已经按照说明下载了tensorflow泊坞窗,并尝试启动第一个任务。

但是由于docker镜像缺lessscikit-learn软件包,所以未能启动。

所以基本上我做什么来克服这个问题是我第一次运行我的docker形象:

 docker run -it -p 8888:8888 b.gcr.io/tensorflow/tensorflow /bin/bash 

然后我运行:

 pip install -U scikit-learn 

然后我运行(可能不是100%正确,但类似):

 ./run_jupyter.sh 

启动iPython笔记本进行我的任务。

我的问题很简单:

我该如何保存这个Docker镜像上发生的这个变化,所以我不必每次重新启动笔记本就重复这个步骤?

我可以通过修改dockerconfiguration文件来做到这一点吗?

一旦你的容器处于正确的状态( scikit-learn被安装,脚本被执行),停止它( docker stop ),并提交它作为一个新的形象。

请参阅docker commit为了提交容器的文件更改或设置到一个新的图像。

然后,您可以运行新的图像(具有与之前相同的参数),但从该新图像创build的容器将具有先前的步骤。

但另一种方法是从tenserflow udacity Dockerfile构build图像。

 FROM gcr.io/tensorflow/tensorflow:latest MAINTAINER Vincent Vanhoucke <vanhoucke@google.com> RUN pip install scikit-learn RUN rm -rf /notebooks/* ADD *.ipynb /notebooks/ WORKDIR /notebooks CMD ["/run_jupyter.sh"] 

该图像默认情况下会执行正确的命令。