volume是用于对Docker容器生成和使用的数据持久化的首选机制。如果您的容器生成非持久状态数据,请考虑使用 tmpfs挂载以避免将数据永久存储在任何地方,并通过避免写入容器的可写层来提高容器的性能。
默认容器的数据存储
在这里我们在容器中创建一些模拟的数据,然后模式容器停止或删除后数据是否丢失。
## 创建数据
[root@myserver ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a0316d74ef5d bulletinboard:1.0 "docker-entrypoint.s…" 55 minutes ago Up 16 minutes 0.0.0.0:8000->8080/tcp bb
[root@myserver ~]# docker exec -it bb bash
root@a0316d74ef5d:/usr/src/app# ls
Dockerfile app.js fonts node_modules package.json server.js
LICENSE backend index.html package-lock.json readme.md site.css
root@a0316d74ef5d:/usr/src/app# cd
root@a0316d74ef5d:~# ls
root@a0316d74ef5d:~# mkdir data
root@a0316d74ef5d:~# ls
data
root@a0316d74ef5d:~# cd data/
root@a0316d74ef5d:~/data# ls
root@a0316d74ef5d:~/data# echo 12323 > tst.txt
root@a0316d74ef5d:~/data# cat tst.txt
12323
root@a0316d74ef5d:~/data# pwd
/root/data
root@a0316d74ef5d:~/data#
## 停止并重新启动容器数据还是存在的
## 删除容器(加入对镜像做了修改)数据丢失
[root@myserver ~]# docker run -itd --name bb bulletinboard:1.0
98e14379e2109c9230d1d