1. 前言
如果数据保存在容器中,那么容器删除了,数据就会丢失。需求:数据可以持久化。
容器之间可以有一个数据共享的技术。Docker容器中产生的数据,同步到本地。
这就是卷技术。将容器内的数据、目录挂载到Linux上面。
2. 数据卷使用
docker run -it -v 主机目录:容器目录 # 测试,挂载目录 docker run -it -v /home/ceshi:/home centos /bin/bash # 查看 docker inspect 容器id
3. 测试一
3.1 容器内创建文件
[root@3e59099fc3b6 /]# cd /home [root@3e59099fc3b6 home]# ls [root@3e59099fc3b6 home]# touch test.py
3.2 主机内查看
root@docker:/home# cd ceshi/ root@docker:/home/ceshi# ll total 8 drwxr-xr-x 2 root root 4096 11月 16 21:57 ./ drwxr-xr-x 4 root root 4096 11月 16 21:50 ../ -rw-r--r-- 1 root root 0 11月 16 21:57 test.py
4. 测试二
4.1 关闭容器
[root@3e59099fc3b6 home]# exit exit root@docker:/home/henggao/Desktop#
4.2 在主机中修改文件
# 在主机中修改test.py,写入内容 root@docker:/home/ceshi# vim test.py root@docker:/home/ceshi# cat test.py print("Hello Python") root@docker:/home/ceshi#
4.3 启动容器
# 1. 查看容器id root@docker:/home/henggao/Desktop# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3e59099fc3b6 centos "/bin/bash" 15 minutes ago Exited (0) 3 minutes ago condescending_bassi 2dd5701e1210 tomcat "catalina.sh run" 39 minutes ago Up 39 minutes 0.0.0.0:3355->8080/tcp, :::3355->8080/tcp tomcat01 f57f1e27658f portainer/portainer-ce "/portainer" About an hour ago Exited (2) 57 minutes ago portainer 29bd213d8487 elasticsearch:7.14.2 "/bin/tini -- /usr/l…" 2 hours ago Exited (143) 57 minutes ago elasticsearch02 96380d19d7f2 elasticsearch:7.14.2 "/bin/tini -- /usr/l…" 2 hours ago Exited (143) 2 hours ago elasticsearch # 2. 启动容器 root@docker:/home/henggao/Desktop# docker start 3e59099fc3b6 3e59099fc3b6 # 3. 进入容器 root@docker:/home/henggao/Desktop# docker attach 3e59099fc3b6 # 4.查看容器内文件 [root@3e59099fc3b6 /]# cd /home [root@3e59099fc3b6 home]# cat test.py print("Hello Python") [root@3e59099fc3b6 home]#