docker的volume

    技术2025-10-22  15

    volume是docker挂载空间的一种方式。

    但是docker好像有另外一种挂载空间方法,比如:docker run -v /usr/local:/usr/local 这种挂载方式叫做bind方式。

    为了直观,我找一个既有bind方式又有volume方式的容器。

    我们查看一下他的Mounts

    [root@localhost ~]# docker inspect 【container】 | grep "Mounts" -A 20 "Mounts": [ { "Type": "volume", "Name": "45cf0f2ba1d197b2w12312d1d323d2d32d24fe0", "Source": "/var/lib/docker/volumes/45cf0f2ba1d197b2w12312d1d323d2d32d24fe0/_data", "Destination": "/home/oracle/app/oracle/oradata", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" }, { "Type": "bind", "Source": "/usr/local/oracle/data", "Destination": "/home/oracle/data_temp", "Mode": "", "RW": true, "Propagation": "rprivate" } ],

    可以发现这个容器将宿主机的/var/lib/docker/volumes/45cf0f2ba1d197b2w12312d1d323d2d32d24fe0/_data和/usr/local/oracle/data都挂载了,而且是通过不同的方式。

    其实这两种方式没有本质的区别,只是使用volume时,该空间是由docker管控,都在docker安装目录下的volumes文件夹里,并可以通过docker system sf -v 来观察其大小

    Processed: 0.014, SQL: 9