Docker卷还原

Docker卷还原,docker,containers,docker-volume,kitematic,Docker,Containers,Docker Volume,Kitematic,我在docker有一个gitlab容器。 今天我安装了Kitematic并开始进行实验。我选择了gitlab容器->设置->网络->按下“连接到主机网络”,然后gitlab就死了。更改此设置后,我注意到现在已删除此容器的所有设置。我认为那个容器是重新创建的。我说得对吗 我发现了一些未使用的卷。我希望这些卷中的一些包含我的数据,这些数据在我的实验和容器重建之后丢失了 如何更改现有容器上的卷,以及如何确定gitlab映像的前一个实例正在使用哪些未使用的卷?以及如何将它们映射到相应的docker文件夹

我在docker有一个gitlab容器。 今天我安装了Kitematic并开始进行实验。我选择了gitlab容器->设置->网络->按下“连接到主机网络”,然后gitlab就死了。更改此设置后,我注意到现在已删除此容器的所有设置。我认为那个容器是重新创建的。我说得对吗

我发现了一些未使用的卷。我希望这些卷中的一些包含我的数据,这些数据在我的实验和容器重建之后丢失了

如何更改现有容器上的卷,以及如何确定gitlab映像的前一个实例正在使用哪些未使用的卷?以及如何将它们映射到相应的docker文件夹,如“/etc/gitlab”、“/var/log/gitlab”、“/var/opt/gitlab”?也许我可以通过某种方式浏览它们,这将帮助我理解基于文件结构的一切


所有卷都在虚拟机内,没有映射到我的主机操作系统驱动器。

似乎已重新创建,是的。如果您运行了
run
而不是
start
,这就是行为,但我不确定

卷(一个示例):

docker run-v您的虚拟机路径:/var/opt/gitlab gitlab:latest

您的数据应该位于旧卷(本地vm路径)中。如果没有,则说明您没有使用这些卷

如果数据位于本地vm路径(VOL)中,请参阅
docker cp--help
将数据放入容器或从容器中获取数据


对于docker来说,您的主机就是您的虚拟机。

似乎是重新创建的,是的。如果您运行了
run
而不是
start
,这就是行为,但我不确定

卷(一个示例):

docker run-v您的虚拟机路径:/var/opt/gitlab gitlab:latest

您的数据应该位于旧卷(本地vm路径)中。如果没有,则说明您没有使用这些卷

如果数据位于本地vm路径(VOL)中,请参阅
docker cp--help
将数据放入容器或从容器中获取数据


对于docker,您的主机就是您的虚拟机。

gitlab docker文件声明了三个卷:

# Define data volumes
VOLUME ["/etc/gitlab", "/var/opt/gitlab", "/var/log/gitlab"]
因此,如果您在第一次启动时没有命名它们,docker将自动创建具有一些随机名称的卷。您可以检查每个卷并查看其实际包含的文件:

docker volume ls
docker volume inspect <volume-name>
确定哪些卷映射到哪个目录后,请按如下方式重新创建容器:

docker run <existing-volume1-name>:/etc/gitlab <existing-volume2-name>:/var/opt/gitlab ...
docker运行:/etc/gitlab:/var/opt/gitlab。。。

gitlab docker文件声明了三个卷:

# Define data volumes
VOLUME ["/etc/gitlab", "/var/opt/gitlab", "/var/log/gitlab"]
因此,如果您在第一次启动时没有命名它们,docker将自动创建具有一些随机名称的卷。您可以检查每个卷并查看其实际包含的文件:

docker volume ls
docker volume inspect <volume-name>
确定哪些卷映射到哪个目录后,请按如下方式重新创建容器:

docker run <existing-volume1-name>:/etc/gitlab <existing-volume2-name>:/var/opt/gitlab ...
docker运行:/etc/gitlab:/var/opt/gitlab。。。

作为此Answare的补充,我使用本文浏览docker文件系统上的卷文件夹:作为此Answare的补充,我使用本文浏览docker文件系统上的卷文件夹: