首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker挂载点是如何确定的?

问Docker挂载点是如何确定的?
EN

Stack Overflow用户
提问于 2020-08-01 03:22:08
回答 2查看 198关注 0票数 0

我从Docker Hub (比方说) Ghost CMS中提取了一个映像,在阅读文档之后,我看到默认的挂载点是/var/lib/ghost/content

现在,当我使用Ghost作为基础镜像来创建自己的应用程序时,我会映射一些文件夹(比如) CMS-Content,并将其挂载到/var/lib/ghost/content上,如下所示-

代码语言:javascript
复制
volumes:
 - CMS-Content:  /var/lib/ghost/content

路径/var/lib/ghost/content是系统级路径。然而,CMS-Content是我创建的一个文件夹,用于存放我的文件(持久数据)。

最后,我决定将我的应用程序作为映像发布到Docker Hub中,那么现在的挂载点是什么?

EN

回答 2

Stack Overflow用户

发布于 2020-08-01 06:33:40

如果您想为容器创建一个持久的数据:

使用command-line:

代码语言:javascript
复制
docker run -it --name <WHATEVER> -p <LOCAL_PORT>:<CONTAINER_PORT> -v <LOCAL_PATH>:<CONTAINER_PATH> -d <IMAGE>:<TAG>

使用docker-compose.yaml:

代码语言:javascript
复制
version: '2'
  services:
    cms:
       image: <IMAGE>:<TAG>
       ports:
       - <LOCAL_PORT>:<CONTAINER_PORT>
       volumes:
       - <LOCAL_PATH>:<CONTAINER_PATH>

假设:

镜像:

  • -cms
  • TAG:ghost

示例:

  1. First create /persistent-volume.

代码语言:javascript
复制
$ mkdir -p /persistent-volume

  1. docker-compose -f docker-compose.yaml up -d

代码语言:javascript
复制
version: '2'
  services:
    cms:
       image: ghost-cms:latest
       ports:
       - 8080:8080
       volumes:
       - /persistent-volume:/var/lib/ghost/content
票数 3
EN

Stack Overflow用户

发布于 2020-08-01 08:53:20

每个容器都有自己的独立文件系统。写镜像的Dockerfile的人可以决定它使用什么文件系统路径,但由于它与其他容器和主机隔离,所以使用“系统”路径是非常正常的。作为另一个例子,标准的Docker Hub数据库镜像使用/var/lib/mysql和/var/lib/postgresql/data。对于自定义应用程序,如果对您有意义,您可以选择使用/app/data,甚至只使用/data。

如果您正在创建一个映像FROM一个预先存在的映像,您通常会继承它的文件系统布局,因此您的自定义映像的挂载点将与基础映像中的相同。

浏览一下Ghost Tutorials,您可能想要做的大多数事情要么是使用管理UI,要么是在content目录中进行手动更改。在您的示例中,唯一更改的文件位于名为CMS-Content的卷中(即使您没有命名卷,也是在Docker Hub ghost image specifies an anonymous volume there中)。这意味着您不能创建具有标准主题或其他类似设置的派生图像:您不能更改派生图像中的content目录,并且如果您尝试使用docker commit (不推荐),则它生成的图像将不包含卷中的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63197949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档