小编Kry*_*ten的帖子

如何部署 docker 容器和关联的数据容器,包括内容?

我首先要承认我对 Docker 还很陌生,而且我可能是从错误的假设集来解决这个问题的……如果是这种情况,请告诉我。我已经看到很多关于 Docker 如何用于部署的讨论,但没有关于它实际如何完成的示例。

这是我认为它会起作用的方式:

  1. 创建数据容器以在机器 A 上保存一些持久数据
  2. 创建使用数据容器中的卷的应用程序容器
  3. 做一些工作,可能会改变数据容器中的数据
  4. 停止应用程序容器
  5. 提交并标记数据容器
  6. 将数据容器推送到(私有)存储库
  7. 在机器 B 上拉取并运行第 6 步中的映像
  8. 从你在机器 B 上停下的地方开始

这里的关键步骤是第 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

19
推荐指数
1
解决办法
2万
查看次数

标签 统计

docker ×1