【问题标题】:owncloud - docker - location of data and mysql data directories on the host?owncloud - docker - 主机上数据和mysql数据目录的位置?
【发布时间】:2018-05-18 06:17:48
【问题描述】:

我在 macOS 机器上安装 owncloud 服务器,所以我必须使用 docker 镜像。 docker installation documentation 表示安装:

在主机上挂载数据和 MySQL 数据目录以进行持久存储

但我找不到位置。

docker-composer.yml 文件提到

services:
  owncloud:
    volumes:
      - files:/mnt/data

但这不是我主机上的路径,所以显然我错过了一些东西。

谢谢,

【问题讨论】:

  • 卷有一个source 和一个destination 字段。你显然在寻找第一个。您是否尝试使用任何inspect 命令?

标签: docker docker-volume owncloud


【解决方案1】:

在您的情况下,您的数据位置是“文件”。
在以下情况下,数据的位置是“/var/mysql/data”:

services:
    owncloud:
        volumes:
            - /var/mysql/data:/mnt/data

【讨论】:

  • 如果您查看docs,您会注意到当卷定义以/./~/ 开头时,您的答案是正确的,这确实是一个路径。但也有一种情况叫“named volumes
  • 谢谢@Colas06,我想我明白了。这是否意味着我可以通过修改 docker-composer.yml 文件中的那一行来修改主机上的路径?
【解决方案2】:

编辑 OwnCloud docker-compose.yml 文件以添加绑定挂载点对我来说根本不起作用。它似乎只适用于第一个容器运行,然后在随后的运行中我收到错误提示数据库无法启动。

我最终发现将数据库存储在主机上、禁用 redis 并使用绑定挂载进行文件存储要容易得多,因此我可以放心,当容器重新启动时,我总是能获得可靠的状态/删除/等。

export OWNCLOUD_VERSION=10.5.0
export OWNCLOUD_DOMAIN=localhost
export ADMIN_USERNAME=***
export ADMIN_PASSWORD=***
export HTTP_PORT=8080

docker run -d \
--net host \
--name owncloud \
-p ${HTTP_PORT}:8080 \
-e OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN} \
-e OWNCLOUD_DB_TYPE=pgsql \
-e OWNCLOUD_DB_NAME=owncloud \
-e OWNCLOUD_DB_USERNAME=*** \
-e OWNCLOUD_DB_PASSWORD=*** \
-e OWNCLOUD_DB_HOST=localhost \
-e OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME} \
-e OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD} \
-e OWNCLOUD_REDIS_ENABLED=false \
-e OWNCLOUD_REDIS_HOST=redis \
-v /blah/data:/mnt/data:rw \
owncloud/server:${OWNCLOUD_VERSION}

这个代码也很漂亮,可以简单地放在你的系统启动文件中然后砰的一声——一切正常。

【讨论】:

    猜你喜欢
    • 2011-11-19
    • 2016-03-25
    • 2018-04-05
    • 1970-01-01
    • 2017-02-12
    • 2019-12-14
    • 2017-11-30
    • 1970-01-01
    • 2013-05-17
    相关资源
    最近更新 更多