docker中容器有必要挂载到主机上吗存储

如题所述

例如docker run -it -v /data --name container1 busybox ); 和挂载到主机(例如docker run -it --name container1 -v /path/on/host:/datavol busybox )但是为了使容量在容器重启甚至容器交换(旧容器被删除,创build/启动新容器)中保持不变,这两种方法都不会将卷挂载到主机上吗? 换句话说,如果我没有通过“简单安装方法”明确地挂载到主机,那么卷的实际安装位​​置在哪里? 而且这个位置如何在容器交换中生存呢?而且,在这两种情况下,我都假定卷只是给定主机的本地卷,并且如果有一个Swarm或群集运行在多个主机上,则无法使用这些命令,以便在不同主机上运行的容器可以访问这些卷,是吗? (而且我猜这是Data Volume Containers发挥的作用,对吧?)提前致谢!这两种方法都不能将卷挂载到主机上?是的,这两种方法都基于容器生命周期中保存的主机目录。使用这些命令获取更多信息:docker volume ls docker volume inspect <volume-id> # and docker inspect <container-id>(方法1)实际安装量在哪里?做这个:docker inspect <container-id>你的答案在“来源”中:"Mounts": [ { "Type": "volume", "Name": "96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001", "Source": "/var/lib/docker/volumes/96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ],请注意,如果您在OSX或Windows中,则该Source指的是运行docker的VM内部的本地目录。而且这个位置如何在容器交换中生存呢?他们生存,因为他们是基于主机的本地目录(他们是卷,因此它们存在)。如果在多个主机上运行Swarm或群集,则无法使用这些命令,以便运行在不同主机上的容器可以访问这些卷,是的?您对简单的卷configuration是正确的。 这是docker变得棘手,持久的地方。 您可以在主机文件系统级别实现共享目录,然后将其作为卷装载到容器中,以便跨群集主机获取共享卷。https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-shared-storage-volume-as-a-data-volume使用PHP在shell中运行docker运行或重新启动PostgreSQL映像后,Docker容器立即退出在CentOS7上暴露Docker Remote API v1.22在Docker上的terminal上安装Gambit绑定的文件夹的内容不可用Docker nginx错误在安assembly置文件Docker(带有SYSTEMCTL的CentOS 7):无法安装tmpfs&cgroup如何使用rabbitmq docker撰写yml文件来构builddocker镜像?Docker-Compose找不到新的节点模块MongoDB使用具有持久存储问题的docker分片群集在Docker中将“named volume”挂载为非root用户
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-11-11
例如docker run -it -v /data --name container1 busybox ); 和
挂载到主机(例如docker run -it --name container1 -v /path/on/host:/datavol busybox )
但是为了使容量在容器重启甚至容器交换(旧容器被删除,创build/启动新容器)中保持不变,这两种方法都不会将卷挂载到主机上吗? 换句话说,如果我没有通过“简单安装方法”明确地挂载到主机,那么卷的实际安装位​​置在哪里? 而且这个位置如何在容器交换中生存呢?
而且,在这两种情况下,我都假定卷只是给定主机的本地卷,并且如果有一个Swarm或群集运行在多个主机上,则无法使用这些命令,以便在不同主机上运行的容器可以访问这些卷,是吗? (而且我猜这是Data Volume Containers发挥的作用,对吧?)提前致谢!
这两种方法都不能将卷挂载到主机上?
是的,这两种方法都基于容器生命周期中保存的主机目录。
使用这些命令获取更多信息:
docker volume ls docker volume inspect <volume-id> # and docker inspect <container-id>
(方法1)实际安装量在哪里?
做这个:
docker inspect <container-id>
你的答案在“来源”中:
"Mounts": [ { "Type": "volume", "Name": "96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001", "Source": "/var/lib/docker/volumes/96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ],
请注意,如果您在OSX或Windows中,则该Source指的是运行docker的VM内部的本地目录。
而且这个位置如何在容器交换中生存呢?
他们生存,因为他们是基于主机的本地目录(他们是卷,因此它们存在)。
如果在多个主机上运行Swarm或群集,则无法使用这些命令,以便运行在不同主机上的容器可以访问这些卷,是的?
您对简单的卷configuration是正确的。 这是docker变得棘手,持久的地方。 您可以在主机文件系统级别实现共享目录,然后将其作为卷装载到容器中,以便跨群集主机获取共享卷。
https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-shared-storage-volume-as-a-data-volume
使用PHP在shell中运行docker运行或重新启动PostgreSQL映像后,Docker容器立即退出
在CentOS7上暴露Docker Remote API v1.22
在Docker上的terminal上安装Gambit
绑定的文件夹的内容不可用
Docker nginx错误在安assembly置文件
Docker(带有SYSTEMCTL的CentOS 7):无法安装tmpfs&cgroup
如何使用rabbitmq docker撰写yml文件来构builddocker镜像?
Docker-Compose找不到新的节点模块
MongoDB使用具有持久存储问题的docker分片群集
在Docker中将“named volume”挂载为非root用户本回答被网友采纳
第2个回答  2022-11-11
例如docker run -it -v /data --name container1 busybox ); 和
挂载到主机(例如docker run -it --name container1 -v /path/on/host:/datavol busybox )
但是为了使容量在容器重启甚至容器交换(旧容器被删除,创build/启动新容器)中保持不变,这两种方法都不会将卷挂载到主机上吗? 换句话说,如果我没有通过“简单安装方法”明确地挂载到主机,那么卷的实际安装位​​置在哪里? 而且这个位置如何在容器交换中生存呢?

而且,在这两种情况下,我都假定卷只是给定主机的本地卷,并且如果有一个Swarm或群集运行在多个主机上,则无法使用这些命令,以便在不同主机上运行的容器可以访问这些卷,是吗? (而且我猜这是Data Volume Containers发挥的作用,对吧?)提前致谢!

这两种方法都不能将卷挂载到主机上?

是的,这两种方法都基于容器生命周期中保存的主机目录。

使用这些命令获取更多信息:

docker volume ls docker volume inspect <volume-id> # and docker inspect <container-id>
(方法1)实际安装量在哪里?

做这个:

docker inspect <container-id>
你的答案在“来源”中:

"Mounts": [ { "Type": "volume", "Name": "96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001", "Source": "/var/lib/docker/volumes/96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ],
请注意,如果您在OSX或Windows中,则该Source指的是运行docker的VM内部的本地目录。

而且这个位置如何在容器交换中生存呢?

他们生存,因为他们是基于主机的本地目录(他们是卷,因此它们存在)。

如果在多个主机上运行Swarm或群集,则无法使用这些命令,以便运行在不同主机上的容器可以访问这些卷,是的?

您对简单的卷configuration是正确的。 这是docker变得棘手,持久的地方。 您可以在主机文件系统级别实现共享目录,然后将其作为卷装载到容器中,以便跨群集主机获取共享卷。

https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-shared-storage-volume-as-a-data-volume

使用PHP在shell中运行docker运行或重新启动PostgreSQL映像后,Docker容器立即退出
在CentOS7上暴露Docker Remote API v1.22
在Docker上的terminal上安装Gambit
绑定的文件夹的内容不可用
Docker nginx错误在安assembly置文件
Docker(带有SYSTEMCTL的CentOS 7):无法安装tmpfs&cgroup
如何使用rabbitmq docker撰写yml文件来构builddocker镜像?
Docker-Compose找不到新的节点模块
MongoDB使用具有持久存储问题的docker分片群集
在Docker中将“named volume”挂载为非root用户本回答被网友采纳
第3个回答  2022-11-12
如果你怕数据丢失的话,那么还是有必要挂载到主机上面储存的。
第4个回答  2022-11-10
如果你怕数据丢失的话,那么还是有必要挂载到主机上面储存的
相似回答