在之前的文章中,我们说过,容器的服务如果需要提供给外部访问,需要把端口映射出来。docker的数据存储卷也是一样的道理,我们在使用docker的时候,有些应用是需要保存数据的,这些需要保存数据的应用就可以把docker容器内的数据目录映射到宿主机上,如果没有指定,写入的数据会存储在docker的联合挂在存储系统上(性能低下),如果指定了挂载的目录(这里是/data),则可以绕过docker的文件系统,直接写在宿主机(或其他文件系统,如:nfs)上,如下图:
上面的/data目录也又两种形式,一种是docker管理的卷,仅指定docker内的挂载点,宿主机上的目录由docker挂载到指定的位置。一种是绑定挂载卷,需要指定docker内的挂载点和宿主机的挂载点。命令如下:
1.docker run --name box1 -it -v /data busybox
2.docker run --name box2 -it -v /docker/data:/data busybox #将容器中的/data目录与宿主机上的/docker/data关联,如果宿主机的目录不存在,会自动创建
扩展:
一、
默认情况下,删除容器并不会删除存储卷
二、docker复制其他docker的存储卷
docker run --name box1 -it --volumes-from box1 busybox
原文地址:https://blog.51cto.com/lidefu/2364586
时间: 2024-10-08 10:46:33