背景说明
为了能够保存(持久化)数据以及共享容器间的数据,Dockerfile中可以使用Volume指令来声明逻辑卷。
解决方案
Volume仅仅只是一个声明,告诉使用者容器运行时可以挂载这个目录到宿主机目录中,在使用docker run命令时使用-v进行外部挂载。
FROM ubuntu
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting
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