网站开发询价表模板下载,网站系统怎么做,网站缩略图存哪里好,网站设计做什么的Docker的镜像是只读的#xff0c;但是容器是可写的#xff0c;我们可以将数据写入到容器#xff0c;不过一旦容器删除数据将会丢 失#xff0c;那么有什么办法能将数据进行持久化存储呢#xff1f;
——在宿主机上开辟一块地方#xff0c;存储内容和docker容器的存储内…Docker的镜像是只读的但是容器是可写的我们可以将数据写入到容器不过一旦容器删除数据将会丢 失那么有什么办法能将数据进行持久化存储呢
——在宿主机上开辟一块地方存储内容和docker容器的存储内容一样
一、Data Volume
Data Volume本质上是Docker主机文件系统中的目录或文件能够直接被挂载到容器的文件系统中容器可以读写Volume中的数据Volume数据可以被永久的保存即使容器已经被销毁停止运行。 二、三种挂载方式
【具名挂载】和【匿名挂载】这两种方式不常用这两种方式Docker会自动在主机的/var/lib/docker/volumes下生成一个目录
如果把容器删除了需要重新从宿主机拿到容器直接再次执行挂载命令即可 1、指定路径挂载——宿主机和容器中路径均给出
docker run -p 33306:3306 -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7
解释
容器启动时通过 -v 参数将 docker 主机上的/my/own/datadir目录挂载到容器里/var/lib/mysql目录
宿主机的文件夹/my/own/datadir 和 容器中的文件夹/var/lib/mysql产生映射
参数 -v--Volume数据持久化 这里不用自己新建文件夹/my/own/datadir /var/lib/mysql没有的话会自动创建的 -v参数中冒号:前面的目录是宿主机目录后面的目录是容器内目录。 -e 后面跟的环境变量每个不同的镜像可能不一样可以去官网查询 这里后面跟的是密码
结果查看宿主机挂载的文件内容和容器内部的内容一样
1、进入容器内部bin/bash没有使用bin/sh 挂载目标路径可以放两多个位置——使用两多个-v 参数 docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/static-docker-binary:/usr/bin/docker busybox sh 2、具名挂载——宿主机路径中 只给出名字不在前面加/
docker run -p 33306:3306 -v chenyang_mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7
挂载结果
docker/volumes文件夹下产生一个chenyang_mysql文件夹 3、匿名挂载
只给出容器里的路径不给出宿主机的路径
docker run -p 33306:3306 -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7
挂载结果
实际挂载到了宿主机的/var/lib/docker/volumes路径下——位于某个volume中根据时间可以区分 4、结果查看 查看所有匿名volume docker volume ls 查看数据卷信息 docker volume inspect chenyang_mysql