【问题标题】:Managing Persistent Files (not database) with Docker使用 Docker 管理持久文件(不是数据库)
【发布时间】:2015-05-20 22:52:58
【问题描述】:

管理持久性文件(而非数据库)(例如配置文件、zip 文件、图像等)的最佳策略是什么?

我尝试了以下方法:

  • 创建文件夹/var/storage
  • 将此作为-v /var/storage:/path/to/container/storage/ 安装到我的容器中

但是,这并没有按预期运行(即仅创建主文件夹 storage,并且未创建任何子文件夹和文件。此外,数据未同步。因此,如果我将文件添加到容器或主机,它没有显示在另一个。我认为这是一个权限问题。

我的另一种方法(我还没有这样做)是一个类似于数据库的容器,以允许更便携的结构。

我的问题是:实现这一点的最佳方法是什么?如果我正在做容器方式,那我的形象是什么?!似乎什么都没有,所以它只是一个完全空的图像。

【问题讨论】:

  • 数据没有同步很奇怪。权限问题很可能会阻止您进行修改,但一旦完成,它们应该被同步。您确定将文件添加到主机上的正确位置吗?
  • 是的,我希望将文件存储在主机上的/var/storage 上。在容器上,我不在乎它们安装在哪里,只要它们安装就行!当我运行docker run 命令时,有没有办法显示错误,以便我可以看到发生了什么?也许它会喊出问题所在
  • 取决于您运行的内容。你可以试试docker logs
  • 你是否偶然在 OSX 上运行 boot2docker?如果是这样,/path/to/container/storage 必须在您的主目录中,例如 /Users/kousha
  • 我的服务器在 Linux Debian 机器上

标签: deployment docker web-deployment


【解决方案1】:

试试这样:

$ sudo mkdir /var/storage
$ sudo docker run -ti -v /var/storage:/var/inside ubuntu
root@cdc215309a60:/# cat > /var/inside/foo
Hello
^d
root@cdc215309a60:/# exit
exit
$ cat /var/storage/foo
Hello

-v 中冒号后的位是您希望将目录挂载到容器内的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 2017-10-19
    • 2015-07-03
    • 1970-01-01
    • 2021-09-06
    相关资源
    最近更新 更多