我首先要承认我对 Docker 还很陌生,而且我可能是从错误的假设集来解决这个问题的……如果是这种情况,请告诉我。我已经看到很多关于 Docker 如何用于部署的讨论,但没有关于它实际如何完成的示例。
这是我认为它会起作用的方式:
这里的关键步骤是第 5 步,我认为它会保存当前状态(包括文件系统的内容)。然后,您可以将该状态推送到存储库并从其他地方提取它,从而为您提供一个与原始容器基本相同的新容器。
但它似乎不是这样工作的。我发现要么第 5 步没有做我认为的那样,要么第 7 步(拉取和运行图像)将容器“重置”到它的初始状态。
我把一组三个 Docker 镜像和容器放在一起来测试这个:一个数据容器,一个每 30 秒将一个随机字符串写入数据容器中的文件的写入器,以及一个读取echo数据中的值的读取器容器文件并退出。
创建于
docker run \
--name datatest_data \
-v /datafolder \
myrepository:5000/datatest-data:latest
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM ubuntu:trusty
# make the data folder
#
RUN mkdir /datafolder
# write something to the data file
#
RUN echo "no data here!" > /datafolder/data.txt
# expose …Run Code Online (Sandbox Code Playgroud) docker ×1