在 docker 容器中为 gitea 设置卷
Setup for volumes in docker container for gitea
我正在尝试设置一个 gitea 容器,在检查官方文档时,对于卷部分,定义如下:
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
我知道卷部分用于在 docker-compose 中配置数据库,但我找不到为什么要在此处进行此特定配置。有人可以向我解释一下我们在 volumes 部分中添加的这些行实现了什么吗?
更具体地说,我们用 ./gitea:/data, /etc/timezone:/etc/timezone:ro
和 /etc/localtime:/etc/localtime:ro
实现了什么,为什么需要这样做?
谢谢。
卷部分是一种在主机系统和容器之间共享文件和目录的方式。使用 :ro 可以使共享文件对容器只读。
必须了解,容器只是当前构建的快照,例如docker 枢纽。每当您删除此容器时,所有数据也会被删除。
因此,卷也用于为数据创建一个位置,该位置应持久且不受容器删除的影响。
所以这里发生了什么:
使用 /etc/timezone:/etc/timezone:ro
,主机系统上的文件 /etc/timezone(docker 守护进程 运行 开启)在 /etc/timezone(:ro 表示只读)在容器内。 /etc/localtime.
也是一样
这些文件定义了主机上使用的时区。通过与容器共享它可以在内部使用它来识别系统时区。
现在关于第 ./gitea:/data
行。
与共享文件的方式相同,您也可以共享目录。在您的情况下,预计在您当前所在的任何目录中,都有一个文件夹 gitea(./ 表示 >here<)。如果您执行 docker 命令,主机上的文件夹 ./getea 将映射到容器内的 /data。
因此,当您启动容器时,容器内的应用程序会将数据写入 /data - 您还可以在 ./gitea 下的主机上访问这些数据。
我正在尝试设置一个 gitea 容器,在检查官方文档时,对于卷部分,定义如下:
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
我知道卷部分用于在 docker-compose 中配置数据库,但我找不到为什么要在此处进行此特定配置。有人可以向我解释一下我们在 volumes 部分中添加的这些行实现了什么吗?
更具体地说,我们用 ./gitea:/data, /etc/timezone:/etc/timezone:ro
和 /etc/localtime:/etc/localtime:ro
实现了什么,为什么需要这样做?
谢谢。
卷部分是一种在主机系统和容器之间共享文件和目录的方式。使用 :ro 可以使共享文件对容器只读。 必须了解,容器只是当前构建的快照,例如docker 枢纽。每当您删除此容器时,所有数据也会被删除。 因此,卷也用于为数据创建一个位置,该位置应持久且不受容器删除的影响。
所以这里发生了什么:
使用 /etc/timezone:/etc/timezone:ro
,主机系统上的文件 /etc/timezone(docker 守护进程 运行 开启)在 /etc/timezone(:ro 表示只读)在容器内。 /etc/localtime.
这些文件定义了主机上使用的时区。通过与容器共享它可以在内部使用它来识别系统时区。
现在关于第 ./gitea:/data
行。
与共享文件的方式相同,您也可以共享目录。在您的情况下,预计在您当前所在的任何目录中,都有一个文件夹 gitea(./ 表示 >here<)。如果您执行 docker 命令,主机上的文件夹 ./getea 将映射到容器内的 /data。
因此,当您启动容器时,容器内的应用程序会将数据写入 /data - 您还可以在 ./gitea 下的主机上访问这些数据。