删除docker在run启动数据会消失,换句话说,每次run都是初始状态
为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念
数据持久化有两种方式,一种是挂载卷——volumes,一种是commit让数据以镜像的方式保存
挂载卷有两种方式,1、命令直接挂载,2、dockerfile配置
- 挂载一个主机目录作为数据卷
使用 --mount 标记可以指定挂载一个本地主机的目录到容器中去。
$ docker run -d -P \
--name web \
# -v /src/webapp:/opt/webapp \
--mount type=bind,source=/src/webapp,target=/opt/webapp \
training/webapp \
python app.py
上面的命令加载主机的 /src/webapp 目录到容器的 /opt/webapp 目录。这个功能在进行测试 的时候十分方便,比如用户可以放置一些程序到本地目录中,来查看容器是否正常工作。本 地目录的路径必须是绝对路径,以前使用 -v 参数时如果本地目录不存在 Docker 会自动为 你创建一个文件夹,现在使用 --mount 参数时如果本地目录不存在,Docker 会报错。
-
dockerFile
FROM centos VOLUME ["/dataV1","dataV2"] CMD /bin/bash
解释:两个挂载卷,容器目录分别是“/dataV1”,“/dataV2”,对应宿主机目录是"/var/lib/docker/volumes/容器ID/_data"
使用
docker inspect 容器Id
查询信息