热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

docker将数据从宿主机挂载到容器中的三种方式

docker将数据从宿主机挂载到容器中的三种方式1、volumes:Docker管理宿主机文件系统的一部分(varlibdockervolumes&#

docker将数据从宿主机挂载到容器中的三种方式
在这里插入图片描述

1、volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes) 保存数据的最佳方式。将容器数据持久化到宿主机,docker自己来管理的一个位置;
volumes特点:

  • 当容器停止或被移除时,该卷依然存在;
  • 当明确删除卷时,卷才会被删除
  • 多个容器之间共享数据;
  • 多个容器可以同时挂载相同的卷
  • 将容器的数据存储在远程主机或其他存储上
  • 将数据从一台docker主机迁移到另一台时,先停止容器,然后备份卷的目录/usr/lib/docker/volumes
  • 相当于宿主机目录软连接到容器中,直接使用

  1. 卷管理

docekr volume ls #列出所有数据卷
docker volume create volumename #创建数据卷(相当于容器共享存储的位置,删除容器,数据卷不会被删掉)
docker volume inspect imagename #查看信息

  • 用卷创建一个容器

docker run -d --name=imagename --mount src=volumename,dst=/usr/share/test/test01 image(最后跟上镜像名)
#src:指定源(使用那个数据卷)
#dst:指定目标(将容器中哪一个目录持久化到数据卷中)

2、bind mounts
将宿主机上的任意位置的文件或目录挂载到容器中;绑定宿主机一个位置挂载到容器的一个目录;如果挂载目标在容器中非空目录,则该目录现有内容将被隐藏;此后所修改的会存在挂载目录中;在挂载前该宿主机目录中尽量不要有数据,保存的是随着容器业务本身所生成的数据

Bind Mounts特点

  • 从主机目录共享配置文件到容器
  • 默认情况下,挂载主机/etc/resolv.conf到每个容器,提供DNS解析
  • 在docker主机上的开发环境和容器之间共享源代码
  • 当docker主机的文件或目录结构保证与容器所需的绑定挂载一致时

#Bind Mounts绑定挂载
docker run -d --name=imagename --mount type=bind,src=/app/www,dst=/usr/share/test/test02 image
#上边指令是将 宿主机的 /usr/share/test/test02目录挂载到容器中的 /app/www下
#type:指定挂载类型 默认是volume

3、 tmpfs
挂载存储在主机系统的内存中,而不会写入主机的系统文件,如果不希望将数据持久存储在任何位置可以使用tmpfs,同时避免写入容器可写层提高性能


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • 开发笔记:Docker 上安装启动 MySQL
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker上安装启动MySQL相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 解决浏览器打开网页后提示“dns_probe_possible 怎么解决”的方法
    在使用浏览器进行网上冲浪的时候遇到故障是一件很常见的事情,很多用户都遇到过系统提示:dns_probe_possible。从提示中可以看出和DNS是有一定的关系的,经过小编测试之后 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
author-avatar
半路出家者
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有