Docker-我们需要在Dockerfile中包含RUN命令
我有一个Python代码,并将其转换为泊坞窗图像,我可以使用下面的命令:
sudo docker build -t customdocker .
这将python代码转换为docker映像。 为了转换它,我使用下面的命令使用Dockerfile:
FROM python:3 ADD my_script.py / ADD user.conf /srv/config/conf.d/ RUN pip3 install <some-package> CMD [ "python3", "./my_script.py" ]
在这里,我们有RUN
命令安装所需的软件包。 比方说,如果我们删除了图像出于某种原因,并希望再次构build它,那么有什么办法可以跳过这个RUN
步骤来节省一些时间,因为我认为这已经安装了。
另外在我的代码中,我正在使用其他目录中的文件user.conf
。 所以为此,我将其包含在DOckerfile中,并将其保存在当前目录中。 在docker中有没有一种方法可以定义我的工作目录,以便docker imagesearch这些目录中的文件。
谢谢
是的,如果要在删除后再次构build泊坞窗图像,则无法删除dockerfile中的RUN或其他语句。
你在你的dockerfile中使用WORKDIR命令,但是它的作用域将在docker镜像中,也就是说当你从镜像创build容器时,workdir将被设置为WORKDIR
例如:
WORKDIR /srv/config/conf.d/
这个/srv/config/conf.d/将被设置为workingdir,但是你必须在dockerfile中使用下面的命令,而按顺序构build在指定位置复制该文件
ADD user.conf /srv/config/conf.d/
回答你的第一个问题:docker镜像包含了与你的python环境相关的所有东西,包括你安装的软件包。 当你删除图像时,包也从图像中删除。 所以,不,你不能跳过这一步。
现在回到第二个问题,您可以在启动容器时通过以下方式绑定一个direectory:
docker run -v /directory-you-want-to-mount:/src/config/ customdocker
您也可以使用-w
标志设置工作目录。
docker run -w /path/to/dir/ -i -t customdocker
https://docs.docker.com/v1.10/engine/reference/commandline/run/