Docker数据卷挂载
在使用的Docker的时候,为了精简Docker的大小,当镜像包含较多的依赖包时,该镜像往往比较大,如果把开发的项目也添加到镜像中,将更加庞大,所以在使用Docker的时候尽量不牵扯要执行的项目代码等问题,只使用Docker的环境,而不牵扯你的项目,但是在启动Docker的时候又需要运行或者依赖你开发的项目,此时就引出了Docker数据卷的挂载.
Docker数据卷挂载的主要方式:
bind mount 方式
volumes 方式
tmpfs 方式
- bind mount方式挂载数据卷:
方式一:docker run -dti -v 宿主机文件或文件夹:容器中的文件或文件夹 < CONTAINER ID> 注意:容器id必须在最后,否则报错找不到"-v" 或者 “–mount” 的错误
方式二:docker run -dti --mount type=bind,src=宿主机文件或文件夹,dst=容器中的文件或文件夹
注意:方式二中的src指定的文件和路径必须提前创建或存在,否则会报错
2.volumes方式挂载数据卷:
方式一:docker run -dti -v VOLUME-NAME:容器中的文件或文件夹
方式二:docker run -dti --mount type=volumes,src=VOLUME-NAME,dst=容器中的文件或文件夹
注意:其中 VOLUME-NAME是数据卷对象,存在于/var/lib/docker/volumes/…文件夹下,可通过docker volumes ls 查看
3.tmpfs方式挂载数据卷:
docker run -dti --mount type=tmpfs,dst=PATH
注意:该方式不存储到硬盘,只缓存到内存中.要特别注意
还有一种比较特殊的挂载方式为:共享其他容器的数据卷:
docker run -dti --volumes-from CONTAINER
数据卷挂载使用注意:
docker的数据卷更多会使用volumes的方式进行挂载(第二种方式).需注意:
- 如果挂载一个空的数据卷到容器中的一个非空目录中,这个目录下的文件会被复制到数据卷中
- 如果挂载一个非空的数据卷到容器的一个目录中,那么容器中的目录会显示数据卷中的数据;如果原来容器中的额目录有数据,那么原始数据会被隐藏.