Docker 数据管理:
/var/lib/docker/containers/
保存的是容器
/var/lib/docker/volumes/
保存的是数据卷
如果运行中的容器修如果生成了新的数据或者修改了现有的一个已经存在的文件内容,那么新产生的数据将会被复制到读写层进行持久化保存,这个读写层也就是容器的工作目录,此即“写时复制
(COW)”机制
数据类型:
Docker 的镜像是分层设计的,底层是只读的
,通过镜像启动的容器添加了一层可读写的文件系统,用户写入的数据都保存在这一层当中,如果要将写入的数据永久生效,需要将其提交为一个镜像然后通过这个镜像在启动实例,然后就会给这个启动的实例添加一层可读写的文件系统,
Docker 的数据类型分为两种,
一是数据卷,二是数据容器,数据卷类似于挂载的一块磁盘,数据容器是将数据保存在一个容器上
docker inspect f55c55544e05 #查看指定 PID 的容器信息
[root@f55c55544e05 /]# dd if=/dev/zero of=file bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.221863 s, 473 MB/s
[root@f55c55544e05 /]# md5sum file
2f282b84e7e608d5852449ed940bfc51 file
1. 数据卷(data volume)
数据卷实际上就是宿主机上的目录或者是文件
,可以被直接 mount 到容器当中使用。
实际生成环境中,需要针对不同类型的服务、不同类型的数据存储要求做相应的规划,最终保证服务的可扩展性、稳定性以及数据的安全性
创建 APP 目录并生成 web 页面:
[root@docker-server1 ~]# mkdir testapp
[root@docker-server1 ~]# echo "Test App Page" > testapp/index.html
启动容器并验证数据:
默认权限----是可读写
的:rwo
-v 将本地的目录映射到容器目录(直接覆盖)
[root@docker-server1 ~]# docker run -d --name web1 \
-v /root/testapp/:/apps/tomcat/webapps/testapp -p 8811:8080 tomcat-web:app1
-v 最后面 可以设置权限 ro只读
[root@docker