我正在尝试设置一个gitea容器,在检查正式文档时,对于卷部分,定义了以下内容:
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro我知道卷部分是用来在docker-组合中配置DB的,但是我找不到为什么在这里完成这个特定的配置。有人能向我解释一下,我们在卷中增加的行能达到什么目的吗?
更具体地说,我们使用./gitea:/data, /etc/timezone:/etc/timezone:ro和/etc/localtime:/etc/localtime:ro实现了什么,为什么需要这样做?
谢谢。
发布于 2021-01-23 13:59:27
卷部分是在主机系统和容器之间共享文件和目录的一种方法。使用:ro,可以使共享文件成为容器的只读文件。我们必须理解,容器只是当前构建的快照,例如,停靠集线器。每当删除此容器时,所有数据也会被删除。因此,体积也被用来为数据创建一个位置,这些数据必须是持久的,并且不受容器移动的影响。
所以这里发生的事情是:对于/etc/timezone:/etc/timezone:ro,主机系统上的文件/etc/timezone (码头守护进程正在运行的地方)可以在容器中的/etc/timezone (:ro表示只读)下使用。/etc/localtime.也是如此
这些文件定义了主机上使用的时区。通过与容器共享它,可以在内部使用它来识别系统时区。
现在是关于线./gitea:/data。与您共享文件的方式相同,您也可以共享目录。在您的例子中,无论您当前在哪个目录中,都会有一个文件夹gitea (./意思是>here<)。如果执行docker命令,主机上的文件夹./getea将映射到容器内的/data。
因此,当您启动容器时,容器中的应用程序将把数据写入/data --您还可以在./gitea下面访问主机上的这些数据。
https://stackoverflow.com/questions/65857874
复制相似问题