19-Docker数据持久化
什么是Docker数据持久化
容器在运行时会在镜像层上加上一层:可写层。
当删除容器时,可写层就会一起被删除,数据丢失。
数据持久化就是就是将数据持久化保存,删除容器之后,数据仍然存在。
方法1-挂载本地目录到容器中
- 挂载方法
docker run -d -p 8080:80 -v /html:/usr/share/nginx/html nginx #-v参数将本地的/html挂载到容器中的/usr/share/nginx/html
- 实验-nginx容器的数据持久化
mkdir /html
vim /html/index.html
<h1>Hello eagle<h1>
docker run -d -p 8080:80 -v /html:/usr/share/nginx/html nginx
firewall-cmd --add-port=8080/tcp
firewall-cmd --add-port=8080/tcp --per
#测试:http://192.168.191.131:8080/
- 挂载为只读模式
-v /a:/b:ro #挂载为只读模式(read only)
方法2-数据卷
数据卷和本机被挂载目录相似,同样使用-v挂载容器中。
数据卷集中保存在/var/lib/docker/volumes中。
创建数据卷
docker volume create -d local test #创建一个名为test的数据卷
创建之后,/var/lib/docker/volumes就会出现test的目录。
test目录中有一个目录:_data。这个目录由于保存所有数据。
查看数据卷
docker volume ls #列出所有数据卷
docker volume inspect test #查看详细信息
删除数据卷
docker volume prune #删除无用数据卷
docker volume rm test #删除数据卷test
使用数据卷
docker run -d -it -p 8800:80 -v test:/usr/share/nginx/html nginx
解释:
和挂载一样,使用-v命令指定数据卷
删除容器之后,数据卷不会丢失内容
若数据卷中有数据,将数据卷中的_data目录 挂载到 容器目录。
若数据卷中无数据,将容器目录中的数据 复制到 数据卷中的_data目录,然后挂载。
数据卷容器
数据卷可以被挂载到多个容器中,这时候数据卷中的数据被共享。
如果要共享数据卷,需要使用--volumes-from参数。
实验
docker volume create -d local volume1
vim index.html
<h1>hello eagle</h1>
docker run -d -it -p 8080:80 -v volume1:/usr/share/nginx/html nginx
docker run -d -it -p 8081:80 --volumes-from a215 nginx #共享容器a215的数据卷
firewall-cmd --add-port=8080-8081/tcp
firewall-cmd --add-port=8080-8081/tcp --per
- 测试
访问http://192.168.191.131:8080/
访问http://192.168.191.131:8081/
结果一样则正确
- 进一步测试
cd /var/lib/docker/volumes/volume1/_data
vim index.html
<h1>hello world</h1>
访问http://192.168.191.131:8080/
访问http://192.168.191.131:8081/
结果由hello eagle变成了hello world。
19-Docker数据持久化的更多相关文章
- Docker数据持久化及实战(Nginx+Spring Boot项目+MySQL)
Docker数据持久化: Volume: (1)创建mysql数据库的container docker run -d --name mysql01 -e MYSQL_ROOT_PASSWORD= my ...
- Docker数据持久化与容器迁移
上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据.如果想做到数据持久化,Docker提供数据卷(Data volume)或 ...
- docker数据持久化
转载/参考: https://www.jianshu.com/p/ef0f24fd0674 Docker的数据持久化主要有两种方式: bind mount docker managed volume ...
- docker数据持久化/共享---volume,bind-mount,tmpfs-mount
一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供 ...
- Docker | 数据持久化与数据共享
数据持久化(安装MySQL) 参考另一篇Docker安装mysql: https://www.cnblogs.com/all-smile/p/16778376.html MySQL的数据持久化问题 # ...
- `docker数据持久化volume和bind mounts两种方式
将数据从宿主机到容器的三种方式: ,volumes:docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)保存数据的最佳方式 ,bind mounts 将宿主机上的任 ...
- 22. docker 数据持久化 Data Volume
1 . 使用场景 在docker 容器被删除的时候 希望数据不丢失 2 . Volume 的使用 * 注意 在 mysql 的 Dockerfile 内 定义了 VOLUME ["var/ ...
- docker 数据持久化
confluence #!/bin/bash docker run \ --name confluence \ --volume "$PWD/data/opt":/opt \ -- ...
- 23. docker 数据持久化 bind mounting
1. bind mounting 和 data volume 的区别 data volume 需要在 Dockerfile 定义 Volume bind mounting 只需要 -v 指明 容器外部 ...
- Docker namespace,cgroup,镜像构建,数据持久化及Harbor安装、高可用配置
1.Docker namespace 1.1 namespace介绍 namespace是Linux提供的用于分离进程树.网络接口.挂载点以及进程间通信等资源的方法.可以使运行在同一台机器上的不同服务 ...
随机推荐
- Taurus.MVC 微服务框架 入门开发教程:项目集成:7、微服务间的调用方式(调整):引用程序集及代码下载(新增)
前言: 今天补充一下 Taurus.MVC 微服务教程,介绍一下微服务中针对RPC方面调整或新增的功能. 之前系列文章目录: Taurus.MVC 微服务框架 入门开发教程:项目集成:1.服务端:注册 ...
- 阿里巴巴MySQL开源中间件Canal入门
前言 距离上一篇文章发布又过去了两周,这次先填掉上一篇秒杀系统文章结尾处开的坑,介绍一下数据库中间件Canal的使用. Canal用途很广,并且上手非常简单,小伙伴们在平时完成公司的需求时,很有可能会 ...
- PLC输出指令频率F计算
本文章为学习记录,水平有限,望各路大佬们轻喷!!! 转载请注明出处!!!
- vue安装tinyMCE
目录 [参考视频] [参考文章] 官网: https://www.tiny.cloud/auth/signup/ 资源下载 tinymce 官方为 vue 项目提供了一个组件tinymce-vue n ...
- Kingbase+sqlsugar 携手助力医疗国产化替换 【人大金仓 .NET ORM】
1. 案例 西京医院CT预约系统, 该项目在2024年初进行上线测试,在正常运行了两天后,业务系统报错:The connection pool has been exhausted, either r ...
- 使用自定义lua解析管理器调用lua脚本中的table
[5] 使用自定义lua解析管理器调用table 访问数组类型的table CallLuaEntrance测试脚本中内容: //------------------------------------ ...
- OpenStack 的 SR-IOV 虚拟机热迁移
目录 文章目录 目录 前言列表 前言 SR-IOV Pass-through 虚拟机热迁移的问题 基于 macvtap 层的 SR-IOV 虚拟机热迁移 Workaround SR-IOV Pass- ...
- 开源低代码框架 ReZero API 正式版本发布 ,界面操作直接生成API
一.ReZero简介 ReZero是一款.NET中间件 : 全网唯一界面操作就能生成API , 可以集成到任何.NET6+ API项目,无破坏性,也可让非.NET用户使用exe文件 免费开源:MIT ...
- Linux安装ElastSearch
Linux安装ES 准备好Linux系统,软件安装前需要对当前系统做一些优化配置 系统配置修改 一.内存优化 在/etc/sysctl.conf添加如下内容: fs.file-max=655360 系 ...
- JavaScript的数学计算库:decimal.js
An arbitrary-precision Decimal type for JavaScript. 功能 整数和浮点数 简单但功能齐全的 API 复制 JavaScript 和对象的许多方法Num ...