📚
Hoa Framework
  • 一、框架指南
  • 二、功能特性
  • 三、源码结构
  • 四、代码规范
  • 五、入门指南
  • 六、依赖注入/控制反转
  • 七、控制器和服务
  • 八、对象映射指南
  • 九、数据库操作指南
    • 9.1、正向工程(Code First)
    • 9.2、逆向工程(Database First)
    • 9.3、关于仓储(IRepository)
    • 9.4、增删改操作
    • 9.5、查询操作
    • 9.6、DataSet、DataTable 操作
    • 9.7、查询结果集映射
    • 9.8、批量增删改操作
    • 9.9、存储过程、视图、函数操作
    • 9.10、工作单元和事务
    • 9.11、多上下文、读写分离
    • 9.12、切面上下文(TangentDbContext)
    • 9.13、其他操作
    • 9.14、EF Core 高性能
    • 9.15、常见错误
  • 十、开放接口指南
    • 10.1、RESTFul 和 Swagger
    • 10.2、规范化返回值
  • 十一、数据校验
  • 十二、安全授权
  • 十三、异常处理
  • 十四、日志管理
  • 十五、配置管理
  • 十六、缓存管理
  • 十七、内置工具类
    • 17.1、数据加解密
  • 十八、跨域处理
  • 十九、筛选拦截器(未)
  • 二十、进程服务(Daemon)
  • 二十一、编写测试
    • 20.1、单元测试
    • 20.2、基准测试
    • 20.3、性能测试
  • 二十二、托管部署
    • 22.1、IIS 托管部署
    • 22.2、Nginx 托管部署
    • 22.3、Docker 容器部署
  • 二十三、性能分析(MiniProfiler)
  • 二十四、其他功能
    • 23.1、第三方包管理
    • 23.2、文件上传下载
    • 23.3、Razor 视图引擎
    • 23.4、生成客户端请求代码
    • 23.5、快捷操作
  • 二十五、Docker 容器化
    • 25.1、Docker 介绍
    • 25.2、Docker 安装
    • 25.3、Docker 安装服务
    • 25.4、Docker 常用命令
    • 25.6、Docker run 常用命令
    • 25.7、Docker-Compose 介绍
    • 25.8、docker-compose.yml
    • 25.9、Docker-Compose 常用命令
    • 25.10、Docker-Compose 转换 docker run
    • 25.11、Docker 构建自己的镜像
    • 25.12、Dockerfile指南
    • 25.13、Dockerfile 常用命令
    • 25.14、Dockerfile 打包、上传、分享
    • 25.15、Docker 数据卷
    • 25.16、Docker 域网络
    • 25.17、Docker + Nginx 实现分布式集群、负载均衡
  • 二十六、DevOps 持续部署集成
    • 26.1、DevOps 介绍
    • 26.2、持续集成、交付、部署
    • 26.3、Jenkins 介绍
    • 26.4、Jenkins 安装
    • 26.5、Jenkins 初始化
    • 26.6、Jenkins 实战演练
    • 26.7、Jenkis 项目配置
    • 26.8、Jenkins 插件
  • 二十七、OpenXml/Excel 操作
  • 二十八、SaaS 多租户
  • 二十九、Git 代码管理
    • 29.1、Git 介绍
    • 29.2、Git 安装
    • 29.3、Git 基础配置
    • 29.4、Git 工作流程
    • 29.5、Git 重要概念
    • 29.6、Git 创建仓库
    • 29.7、Git 基本操作
    • 29.8、Git 分支管理
    • 29.9、Git 查看提交历史
    • 29.10、Git 标签
    • 29.11、Git 拉取/获取/推送
    • 28.12、Git GUI工具
    • 29.13、Git 私有化部署
    • 29.14、Git 推荐开发模式
    • 29.15、Svn 转 Git
  • 贡献代码
  • 更新日志
由 GitBook 提供支持
在本页
  • 数据卷作用
  • 数据卷介绍
  • 创建数据卷
  • 注意事项
  • Nginx 挂载数据卷的一个例子
  • 开发注意事项

这有帮助吗?

  1. 二十五、Docker 容器化

25.15、Docker 数据卷

所有的应用都和数据息息相关,数据是无价之宝。

上一页25.14、Dockerfile 打包、上传、分享下一页25.16、Docker 域网络

最后更新于4年前

这有帮助吗?

为了持久化我们的数据,所以Docker引入了数据卷,数据卷区别于容器,镜像,删除容器镜像并不会删除数据卷。

数据卷作用

  • 数据卷可以在容器间共享和重用数据

  • 数据卷可以在宿主和容器间共享数据

  • 数据卷数据改变是直接修改的

  • 数据卷是持续性的,直到没有容器使用它们。即便是初始的数据卷容器或中间层的数据卷容器删除了,只要还有其他的容器使用数据卷,那么里面的数据都不会丢失。

数据卷介绍

所谓的数据卷无非就是一个存储数据的地方,可以是一个目录,也可以是一个文件。我们可以把容器里面某一个目录或者文件在我们本机(宿主)做一个映射关系,==当容器数据发生改变或者本机数据发送改变,可以相互作用,相互影响,当容器删除并不会删除数据卷==

创建数据卷

  • docker run时,通过 -v 方式创建,-v 主机目录/文件:容器中目录/文件 (==推荐==)

docker run --name container -v ~/data/html:/usr/share/html -d image

:ro:表示只读 :rw:表示可读可写

如:

docker run --name nginx -p 80:80 -v ~/data/conf/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
  • 通过docker volumn create 创建,没办法指定主机目录,固定为:/var/lib/docker/volumes/,只能创建目录数据卷

docker volume create new-volumn
docker volume ls

docker volume inspect new-volume
docker run --name nginx -p 80:80 -v new-volume:/etc/nginx:ro -d nginx

方便多个容器共用,无需指定具体目录,通常用于临时保存一些数据供其他容器查看或调用,类似临时表的概念

  • 通过 Dockerfile 中创建

VOLUME ["/uploads"]

==特别注意:这里是不能指定主机目录的!!!!我们只是做了一个开放接口,因为每个人的电脑分区,系统类型都不一样,主机目录应该由运行者设置!!!==

比如客户上传的东西都放在了uploads 目录中,这样我们就可以做映射把数据备份到本机

docker run -v /etc/data:/uploads

注意事项

在Windows系统中,主机地址需要全路径,==盘符前面需要加两个斜杠==,如://D/workplace 表示D盘workplace目录

在Linux/Mac系统中,主机地址需要添加==~==开头,如:~/etc 表示根目录的etc目录,linux系统很少有盘符的概念(当然也可以有)

Nginx 挂载数据卷的一个例子

docker run --name first-nginx -v ~/data/html:/usr/share/nginx/html -p 8081:80 -d nginx

原有的数据依然存在

开发注意事项

一旦我们定义了Docker数据卷,那么在我们程序中就要用数据卷目录为主,如

我们定义了 /uploads 用户上传的目录,那么我们的代码

C#

FileHelper.Upload("/uploads","a.jpg");

我们代码所有需要上传在这个目录中的全部要用 /uploads 表示。而不是通过 获取当前项目的目录

https://docs.docker.com/engine/reference/commandline/volume_create/