【问题标题】:How can I use my saved volume data after restarting docker?重启 docker 后如何使用我保存的卷数据?
【发布时间】:2020-04-15 00:45:11
【问题描述】:

我在运行 Windows 的 PC 上有一个基于 Linux 的 Docker 容器。我已经提取并安装了 Gitlab CI/CD。一切都在运行,我登录到 Gitlab,但每次我重新启动 docker 容器时,就像我丢失了所有数据一样。我知道它会覆盖以前保存在容器内的数据,但我需要一种“持久化”该数据的方法。据我了解,唯一的方法是以某种方式将 Gitlab 图像的卷指向保存在我的 PC 上的目录。如何执行此操作或类似操作,以免在 Docker 重启时丢失数据?

我运行的实例化 gitlab 镜像的脚本如下:

docker run -d --hostname gitlab.wproject.gr \
-p 4433:443 -p 80:80 -p 2223:22 \
--name gitlab-server1 \
--restart always \
--volume /storage/gitlab/config:/etc/gitlab \
--volume /storage/gitlab/logs:/var/log/gitlab \
--volume /storage/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

【问题讨论】:

    标签: docker gitlab teamcity


    【解决方案1】:

    尝试为您的卷放置相对链接,而不是绝对链接。如果您在 Windows 上使用 Docker Desktop,卷管理的行为方式并不总是与在 Linux 上相同。

    测试:

    mkdir gitlab
    
    docker run -d --hostname gitlab.wproject.gr \
    -p 4433:443 -p 80:80 -p 2223:22 \
    --name gitlab-server1 \
    --restart always \
    --volume ./gitlab/config:/etc/gitlab \
    --volume ./gitlab/logs:/var/log/gitlab \
    --volume ./gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest
    

    【讨论】:

    • 您好,感谢您的回复。显然,这似乎不起作用。首先,您不能以这种方式编写相对路径。它不识别点号 (.),除了我在 docker 初始化时所说的,它将这些文件夹重置为图像的初始状态。我需要的是在初始化中传递一些将现有数据作为初始数据的东西。
    猜你喜欢
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2022-12-11
    • 2017-09-06
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    相关资源
    最近更新 更多