背景说明

为了能够保存(持久化)数据以及共享容器间的数据,Dockerfile中可以使用Volume指令来声明逻辑卷。

解决方案

Volume仅仅只是一个声明,告诉使用者容器运行时可以挂载这个目录到宿主机目录中,在使用docker run命令时使用-v进行外部挂载。

  1. FROM ubuntu
  2. RUN mkdir /myvol
  3. RUN echo "hello world" > /myvol/greeting
  4. VOLUME /myvol

如上也可以写成数组格式 VOLUME [“/myvol”] 镜像在生成容器的过程中会自动生成目录/myvol,可以使用-v进行和宿主机目录进行挂载映射

此时/myvol及是一个可以挂载的目录,可以使用如下命令进行使用

docker run -name volumetest -v /myvol/greeting:/home/data myimage

通过如下命令查看volume卷

[root@vm1 ~]# docker volume ls
[root@vm1 ~]# docker inspect volumetest