什么是容器数据卷?从docker的概念出发,docker将应用和环境打包成一个镜像,运行镜像(生成容器)即可访问服务。如果数据存储在容器中,如果删除容器,数据就会丢失!需求:数据可以持久化。如果删除了MySQL容器,就相当于删除了数据库。需求:MySQL数据可以存储在本地。容器之间可以有数据共享技术。docker容器产生的数据同步到本地或者其他地方。这就是数据卷技术,也就是目录挂载。容器中的目录挂载到虚拟机或Linux。目的:实现容器数据的持久化和同步化。容器之间也可以共享数据数据覆盖问题如果将空数据卷挂载到容器中的非空目录,则该目录下的文件会被复制到数据卷中。如果将一个非空的数据卷挂载到容器中的某个目录中,则该数据卷中的数据将显示在容器中的目录中。如果原始容器中的目录中有数据,则原始数据将被隐藏。这两条规则非常重要,灵活运用第一条规则可以帮助我们初始化数据卷的内容。掌握第二条规则,可以保证数据卷挂载后的数据始终是你期望的结果。数据卷使用方法一:直接使用命令挂载-vdockerrun-it-v宿主目录:容器中的目录dockerrun-it-v/home/test:/homecentos/bin/bashdockerinspect命令查看containerinformationtestmountVolume1.修改容器里面的文件,同步到linux主机,进入容器。在/home目录下创建一个123.sh文件。您可以在主机中查看容器内创建的文件。2、同样,在Linux上也可以修改挂在卷上的文件。同步到容器内部3.停止容器,修改linux主机上的文件,同步到容器#1.停止容器exit#2.检查容器是否还在运行dockerps#3.修改Linux主机上相应目录下的文件#4.启动容器,查看#4.1。查看历史运行容器dockerps-a#4.2。启动容器dockerstartCONTAINERID#4.3。输入容器dockerattachCONTAINERID#4.4。查看数据卷文件方法二:请查看Dockerfile下一章数据卷命令dockervolumedockervolume--helpUsage:dockervolumeCOMMANDManagevolumesCommands:create创建卷inspect显示一个或多个卷的详细信息lslistvolumespruneRemoveallunusedlocalvolumesrm删除一个或多个卷运行“dockerCOMMAND--help”以获取有关命令的更多信息。命名挂载/匿名挂载匿名挂载-v容器路径-P自动分配端口号dockerrun-d-P--namenginx02-v/etc/nginxnginx命名挂载-v卷名:容器路径dockerrun-d-P--名称nginx03-vjuming-nginx:/etc/nginxnginx查看数据量方法一:dockerinspectcontainerID方法二:dockervolumeinspectjuming-nginx查看linux主机docker工作目录/var/lib/dockervolumes在所有docker容器中,如果没有指定目录,会以三种方式存放在/var/lib/docker/volumes/xxx/_data目录下挂载#1-v容器路径#匿名挂载#2-v卷名:容器路径#Namedmount#3-vhostpath:containerpath#指定挂载扩展的路径,为挂载的数据卷添加读写权限控制pass-v容器中的路径,rorw更改读写权限roreadonlyread-onlyrwreadwrite可以读写#一旦设置了容器权限,容器对我们挂载的内容就有了限制。dockerrun-d-P--namenginx03-vjuming-nginx:/etc/nginx:ronginxdockerrun-d-P--namenginx03-vjuming-nginx:/etc/nginx:rwnginxro:表示这个路径只能通过宿主机操作,不能在容器中操作。我是甜品cc热爱前端,也喜欢专攻与本职工作相关的各种工种无关技术,技术,产品兴趣广而强,等待一个创业机会本账号主要致力于分享个人经验总结,希望能给一小部分人一些小小的帮助。希望与大家一起营造良好的学习氛围,为个人和家庭,为我国的物联网技术、数字化转型、数字经济发展尽一份微薄之力。数风流人物还是看中国,看当下,看你我。
