假设我有以下 Python 代码:
#!/usr/bin/pyton3
import time
while(True):
print("Hello World")
time.sleep(1)
使用上面的 Python 代码,我使用 dockerfile 创建了一个 docker 图像 pythondocker。现在 dockerfile 包含很多包,需要先安装然后构建镜像。构建镜像后,我可以轻松启动/停止容器。
现在我的问题是,例如,我对我的 Python 代码做了一些更改,我想用新的更改更新 docker image pythondocker。我怎样才能做到这一点?一种方法是先停止容器,然后删除镜像并再次构建它。但是再次构建镜像需要一些时间,因为它会再次安装所有的包。有什么方法可以停止图像而不是删除它,然后将更改应用于当前图像,或者可以构建图像但不安装 dockerfile 中提到的包/依赖项。
请您参考如下方法:
您的 Dockerfile 可能如下所示:
FROM python:2
RUN apt-get install libxxx
ADD requirememts.txt /
RUN pip install -r /requirements.txt
ADD main.py /usr/src/app
WORKDIR /usr/src/app
RUN pip install -r /usr/src/app/requirements.txt
CMD ["python", "main.py"]
您可以简单地运行 docker build -t some_tag .。只有 ADD main.py/usr/src/app 下面的行会被重新安装/升级,上面的行只会在你第一次构建镜像时安装一次。
