在以前的文章中,咱们说过,容器的服务若是须要提供给外部访问,须要把端口映射出来。docker的数据存储卷也是同样的道理,咱们在使用docker的时候,有些应用是须要保存数据的,这些须要保存数据的应用就能够把docker容器内的数据目录映射到宿主机上,若是没有指定,写入的数据会存储在docker的联合挂在存储系统上(性能低下),若是指定了挂载的目录(这里是/data),则能够绕过docker的文件系统,直接写在宿主机(或其余文件系统,如:nfs)上,以下图:
上面的/data目录也又两种形式,一种是docker管理的卷,仅指定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关联,若是宿主机的目录不存在,会自动建立
扩展:
1、
默认状况下,删除容器并不会删除存储卷
2、docker复制其余docker的存储卷ide
docker run --name box1 -it --volumes-from box1 busybox
性能