【问题标题】:Setup for volumes in docker container for gitea为 gitea 设置 docker 容器中的卷
【发布时间】:2021-04-27 16:06:05
【问题描述】:

我正在尝试设置一个 gitea 容器,在查看官方文档时,对于卷部分,定义了以下内容:

 volumes:
  - ./gitea:/data
  - /etc/timezone:/etc/timezone:ro
  - /etc/localtime:/etc/localtime:ro

我知道卷部分用于在 docker-compose 中配置数据库,但我找不到为什么要在此处完成此特定配置。有人可以向我解释一下我们在卷部分中添加的行可以实现什么吗?

更具体地说,我们用./gitea:/data, /etc/timezone:/etc/timezone:ro/etc/localtime:/etc/localtime:ro 实现了什么?为什么需要这样做?

谢谢。

【问题讨论】:

    标签: docker docker-compose gitea


    【解决方案1】:

    卷部分是在主机系统和容器之间共享文件和目录的一种方式。使用 :ro 可以使共享文件对容器只读。 必须明白,容器只是当前构建的快照,例如码头枢纽。每当您删除此容器时,所有数据也会被删除。 所以volumes也被用来为数据创建一个地方,这些数据应该是持久的,不受容器移除的影响。

    那么这里会发生什么: 使用/etc/timezone:/etc/timezone:ro,主机系统上的文件 /etc/timezone(docker 守护程序运行的地方)在 /etc/timezone 下可用(:ro 表示只读) 容器内/etc/localtime 也是如此。

    这些文件定义了主机上使用的时区。通过与容器共享它,它可以在内部用于识别系统时区。

    现在关于./gitea:/data 行。 与您可以共享文件的方式相同,您也可以共享目录。在您的情况下,预计在您当前所在的任何目录中,都有一个文件夹 gitea(./ 表示>here

    因此,当您启动容器时,容器内的应用程序会将数据写入 /data - 您还可以在主机上的 ./gitea 下访问这些数据。

    【讨论】:

      猜你喜欢
      • 2018-09-09
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 2021-02-02
      • 2023-03-15
      • 1970-01-01
      • 2020-09-12
      • 2019-08-17
      相关资源
      最近更新 更多