我在运行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
请尝试为您的卷放置相对链接,而不是绝对链接。如果您在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