Docker 卷还原
Docker volume restore
我在 docker 中有一个 gitlab 容器。
今天我安装了 Kitematic 并开始试验。我选择 osed gitlab 容器 -> 设置 -> 网络 -> 按下 'CONNECT TO HOST NETWORK' 然后 gitlab 死了。更改此设置后,我注意到此容器的所有设置现在都已删除。我认为该容器已重新创建。我说的对吗?
我发现了一些未使用的卷。我希望这些卷中的一些包含我的数据,这些数据在我的实验和容器重新创建之后是 lost。
如何更改现有容器上的卷以及如何确定我的 gitlab 映像的先前实例正在使用哪些未使用的卷?以及如何将它们映射到相应的 docker 文件夹,如“/etc/gitlab”、“/var/log/gitlab”、“/var/opt/gitlab”?也许我可以以某种方式浏览它们,这将帮助我了解基于文件结构的所有内容?
所有卷都在虚拟机中,没有映射到我的 host os 驱动器。
好像是重制的,是的。如果您使用 运行 run
而不是 start
,这就是行为,但我不确定。
卷(一个例子):
docker run -v your-vm-path:/var/opt/gitlab gitlab:latest
您的数据应该在您的旧卷中(本地虚拟机路径)。如果不是,则说明您没有使用这些卷。
如果数据在您的本地虚拟机路径 (vols) 中,请参阅 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>
在主机上找到 Mountpoint
分析哪个卷映射到容器中的哪个目录。您可以通过
将其与新容器进行比较
docker exec -it <container-name> ls /var/opt/gitlab
确定哪个卷映射到哪个目录后,重新创建容器:
docker run <existing-volume1-name>:/etc/gitlab <existing-volume2-name>:/var/opt/gitlab ...
我在 docker 中有一个 gitlab 容器。 今天我安装了 Kitematic 并开始试验。我选择 osed gitlab 容器 -> 设置 -> 网络 -> 按下 'CONNECT TO HOST NETWORK' 然后 gitlab 死了。更改此设置后,我注意到此容器的所有设置现在都已删除。我认为该容器已重新创建。我说的对吗?
我发现了一些未使用的卷。我希望这些卷中的一些包含我的数据,这些数据在我的实验和容器重新创建之后是 lost。
如何更改现有容器上的卷以及如何确定我的 gitlab 映像的先前实例正在使用哪些未使用的卷?以及如何将它们映射到相应的 docker 文件夹,如“/etc/gitlab”、“/var/log/gitlab”、“/var/opt/gitlab”?也许我可以以某种方式浏览它们,这将帮助我了解基于文件结构的所有内容?
所有卷都在虚拟机中,没有映射到我的 host os 驱动器。
好像是重制的,是的。如果您使用 运行 run
而不是 start
,这就是行为,但我不确定。
卷(一个例子):
docker run -v your-vm-path:/var/opt/gitlab gitlab:latest
您的数据应该在您的旧卷中(本地虚拟机路径)。如果不是,则说明您没有使用这些卷。
如果数据在您的本地虚拟机路径 (vols) 中,请参阅 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>
在主机上找到 Mountpoint
分析哪个卷映射到容器中的哪个目录。您可以通过
docker exec -it <container-name> ls /var/opt/gitlab
确定哪个卷映射到哪个目录后,重新创建容器:
docker run <existing-volume1-name>:/etc/gitlab <existing-volume2-name>:/var/opt/gitlab ...