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"]
该图像默认情况下会执行正确的命令。