【Docker】Docker学习⑤ - Docker数据管理
一、Docker简介
二、Docker安装及基础命令介绍
三、Docker镜像管理
四、Docker镜像与制作
五、Docker数据管理
如果运行中的容器修改如果生成了新的数据或者修改了现有的一个已经存在的文件内容,那么新产生的数据将会被复制到读写层进行持久化保存,这个读写层也就是容器的工作目录,此即“写时复制(COW)copy on write”机制
1. 数据类型
- Docker 的镜像是分层设计的,底层是只读的,通过镜像启动的容器添加了一层可读写的文件系统,用户写入的数据都保存在这一层当中,如果要将写入的数据永久生效,需要将其提交为一个镜像然后通过这个镜像再启动实例,然后就会给这个启动的实例添加一层可读写的文件系统。
- 目前Docker的数据类型分为两种,一是数据卷,二是数据容器,数据卷类似于挂载的一块磁盘,数据容器是将数据保存在一个容器上。
#查看指定PID的容器信息
日志:
[root@gbase8c_private haproxy-1.8.31]# docker inspect bd4ec06804db
.......
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/dddd5100022dc9dd378bbf2335238c397d1af17a5aea082bb92fbef9c812c93a-init/diff:/var/lib/docker/overlay2/d214d50660ae41a278d91e2c6c29fd4a7cc8184a98d5a6806c083e69dcc6e3fa/diff:/var/lib/docker/overlay2/7519ab25a179a968ecea9c106ff942cb7773ccdf45a28481fffb0459e18820ce/diff:/var/lib/docker/overlay2/d3bb81d4b06b5a73c5ced34a63078c386bdf78e7284673222ab2a620d5f0961f/diff:/var/lib/docker/overlay2/d9c3436b42f5d4b6d20e657640f1367ccbdba9521bc24d2f4e28dfaaf1d35537/diff:/var/lib/docker/overlay2/eb71623e9d9461ab5f07a015ce1882ad64366fd660e2431819cc248211d49b02/diff:/var/lib/docker/overlay2/0a665e15bd865f0001c1627b299c1704ac24c5411c4f10253946aae3087d54a6/diff:/var/lib/docker/overlay2/dac7c052b6df0bc270aa518861aff146477172886deb3dc593eaef00cd0de4cb/diff:/var/lib/docker/overlay2/d82086cfc2f1bc7fddb53f836e70daa237746cbd4a53dc5d8f70e59d8650c846/diff:/var/lib/docker/overlay2/a86b253e60b8498a4c59a48951e43f5c77a5e5e8266e405f8a7e8e1b20a63dc9/diff:/var/lib/docker/overlay2/ce3de19266860f7e3493ba9b16649347e9bd92ba648261843bd14fb1dd9e1e54/diff:/var/lib/docker/overlay2/f1bf8e7f890b1a1071493b75983686629b4e50c2bb38a7b77b1c044660a762f2/diff:/var/lib/docker/overlay2/43af4ff05b28f124d174b05c8f91a519e026386552867953fd4cc7c228497827/diff",
"MergedDir": "/var/lib/docker/overlay2/dddd5100022dc9dd378bbf2335238c397d1af17a5aea082bb92fbef9c812c93a/merged",
"UpperDir": "/var/lib/docker/overlay2/dddd5100022dc9dd378bbf2335238c397d1af17a5aea082bb92fbef9c812c93a/diff",
"WorkDir": "/var/lib/docker/overlay2/dddd5100022dc9dd378bbf2335238c397d1af17a5aea082bb92fbef9c812c93a/work"
},
.......
[root@gbase8c_private haproxy-1.8.31]# docker exec -it bd4ec06804db bash
[root@bd4ec06804db /]# dd if=/dev/zero of=file bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0658615 s, 1.6 GB/s
[root@bd4ec06804db /]# md5sum file
2f282b84e7e608d5852449ed940bfc51 file
[root@bd4ec06804db /]# ls
apps dev file lib lost+found mnt proc run srv tmp var
bin etc home lib64 media opt root sbin sys usr
[root@bd4ec06804db /]# cp file /opt/file.log
[root@gbase8c_private haproxy-1.8.31]# tree /var/lib/docker/overlay2/dddd5100022dc9dd378bbf2335238c397d1af17a5aea082bb92fbef9c812c93a/diff
/var/lib/docker/overlay2/dddd5100022dc9dd378bbf2335238c397d1af17a5aea082bb92fbef9c812c93a/diff
├── apps
│ └── apache-tomcat-8.5.96
│ ├── conf
│ │ └── Catalina
│ │ └── localhost
│ ├── logs
│ │ ├── catalina.2023-12-10.log
│ │ ├── catalina.2023-12-12.log
│ │ ├── catalina.out
│ │ ├── host-manag