返回顶部
首页 > 资讯 > 后端开发 > JAVA >Docker 实现挂载的三种方式
  • 221
分享到

Docker 实现挂载的三种方式

docker容器运维java 2023-09-05 20:09:35 221人浏览 薄情痞子
摘要

一.为什么有挂载? 容器中运行的应用,有可能会产生数据,如果将数据直接存储到容器中,如果删除容器时,容器中的数据会一起被删除,例如: 如果运行的是数据库容器,数据库容器直接保存的数据文件,删除容器时,容易导致数据丢失 为了防止数据丢失,可以

一.为什么有挂载?

容器中运行的应用,有可能会产生数据,如果将数据直接存储到容器中,如果删除容器时,容器中的数据会一起被删除,例如:

如果运行的是数据库容器,数据库容器直接保存的数据文件,删除容器时,容易导致数据丢失

为了防止数据丢失,可以把数据保存到宿主机上,这样有便于容器之间的数据共享

二.挂载方式: 单个文件 文件夹 数据卷

1.单个文件

命令如下:

Docker run -d --name cat4 \

--restart = always \

-v ~/server.xml:/usr/local/Tomcat/conf/server.xml \

tomcat:8

这段代码一共完成了:

创建了一个新的容器,运行的是tomcat8,当宿主机重启时,会自动启动该容器,给容器命名为cat4,方便输入查看日志命令,-d为后台运行

用文件挂载的方式,将宿主机的server.xml文件挂载到容器的/usr/local/tomcat/conf/server.xml文件,可以理解为/usr/local/tomcat/conf/server.xml相当于一个快捷方式

可通过命令:docker inspect cat4 查看容器详情

2.文件夹

命令如下:

docker run -d --name Mysql \ 

-v /data/mysql:/var/lib/mysql \

-e MYSQL_ROOT_PASSWord=root \

mariadb

这段代码一共完成了:

创建了一个新容器,运行mariadb,命名为mysql,将文件夹的挂载方式,将宿主机的/data/mysql文件夹挂载到容器的/var/lib/mysql路径中,-v会自动创建宿主机文件夹,-e配置环境变量

其中/var/lib/mysql和MYSQL_ROOT_PASSWORD=root视镜像源而定

创建完成之后,同样可以运行docker inspect mysql 查看容器详情

此外,还可以运行命令: ll /data/mysql 查看挂载源文件,此时是有数据的

 还可以运行命令: docker rm -f mysql 删除容器

删除容器后继续运行命令: ll /data/mysql,结果是一致的,因为文件是存在宿主机上的

3.数据卷

数据卷的本质上还是文件夹,docker可以自动指定一个挂载文件夹,但是路径比较深,而且还惨杂随机字符,所以可以创建一个数据卷,同时给其取一个别名,在使用路径时,就可以用别名表示完整文件夹路径,命令如下:

docker volume create my-vol  创建数据卷,名称为my-vol 

docker volume ls 查看数据卷列表

docker inspect my-vol 查看数据卷详情,其中"/var/lib/docker/volumes/my-vol/_data"为存储数据的真实目录

 准备好数据卷后,创建容器,与挂载文件夹的方式类似

docker run -d --name mysql1\

-v my-vol:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=root \

mariadb

手动指定my-vol挂载到/var/lib/mysql路径,删除容器时,数据卷不会删除,如需删除容器时连同数据卷一起删除,可以在删除命令后加 --volumes,如:docker rm -f mysql --volumes

如果没有手动指定挂载,会自动新建数据卷挂载,如下代码

docker run -d --name mysql2\

-e MYSQL_ROOT_PASSWORD=root \

mariadb

同样可以通过命令docker volume ls 查看数据卷列表,其指定的挂载文件夹路劲很复杂

来源地址:https://blog.csdn.net/weixin_72125569/article/details/126920724

--结束END--

本文标题: Docker 实现挂载的三种方式

本文链接: https://lsjlt.com/news/395933.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Docker 实现挂载的三种方式
    一.为什么有挂载 容器中运行的应用,有可能会产生数据,如果将数据直接存储到容器中,如果删除容器时,容器中的数据会一起被删除,例如: 如果运行的是数据库容器,数据库容器直接保存的数据文件,删除容器时,容易导致数据丢失 为了防止数据丢失,可以把...
    99+
    2023-09-05
    docker 容器 运维 java
  • Docker之实现挂载的三种方式汇总
    目录Docker实现挂载的方式一、通过docker run命令二、通过dockerfile创建挂载点三、容器共享卷(挂载点)四、最佳实践:数据容器关于Docker中挂载的解释总结Do...
    99+
    2023-02-25
    Docker挂载 Docker实现挂载 Docker挂载方式
  • Docker实现挂载的方式有哪些
    这篇文章主要讲解了“Docker实现挂载的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker实现挂载的方式有哪些”吧!Docker实现挂载的方式在介绍VOLUME指令之前,...
    99+
    2023-07-05
  • 详解docker进行数据挂载的三种模式
    目录一、Tmpfs挂载二、Bind mounts三、Bind mounts-测试是否正确挂载数据卷四、Bind mounts-验证只读挂载Docker 提供了三种方式将数据从宿主机挂...
    99+
    2024-04-02
  • docker的具名挂载与匿名挂载实现
    大家好,今天我们分享一下docker 的具名挂载与匿名挂载 以这条命令举例 [root@localhost ~]# docker run -d -P --name nginx02 ...
    99+
    2024-04-02
  • docker的三种安装方式汇总
    目录docker的安装方式yum安装docker (需要联网, 允许选择版本):脚本安装最高版本dockerrpm包安装dockerdocker 安装指定版本Centos安装Ubun...
    99+
    2023-03-09
    docker的安装 安装docker docker安装方式
  • Docker系列---【Docker设置时区的三种方式】
    1.在Dockerfile中设置镜像时区 # 设定时区ENV TZ=Asia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc...
    99+
    2023-09-17
    docker linux 运维 容器 服务器
  • Docker容器互访三种方式
    docker容器之间是互相隔离的,不能互相访问,但如果有些依赖关系的服务要怎么办呢。下面介绍三种方法来解决容器互访问题,分别是:虚拟ip访问 link 创建bridge网络 本文以一台centos 7.6服务器来演示。 ...
    99+
    2023-01-31
    三种 容器 方式
  • docker容器间进行数据共享的三种实现方式
    目录一、Bind Mounts方式共享数据二、Volumes方式数据共享三、Volume container(数据卷容器)方式3.1.创建数据卷容器3.2.使用数据卷容器我们本节为大...
    99+
    2024-04-02
  • Docker volume挂载卷如何实现
    今天小编给大家分享一下Docker volume挂载卷如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • 浅拷贝的三种实现方式
    1、ES6的方法 Object.assign()  作用:将第二个参数及以后的参数合并到第一个对象里。 参数1:target 参数2:对象…… 参数3:对象…. 例:       var obj = {a:{name:”kaiqin”,ag...
    99+
    2023-10-29
    三种 方式
  • python实现下载文件的三种方法
    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块。 当然你也可以利用ftplib从ftp站点下载文件。此外Python还提供了另外一种方法re...
    99+
    2022-06-04
    三种 文件 方法
  • android实现ViewPager懒加载的三种方法
    在项目中ViewPager和Fragment接口框架已经是处处可见,但是在使用中,我们肯定不希望用户在当前页面时就在前后页面的数据,加入数据量很大,而用户又不愿意左右滑动浏览,...
    99+
    2022-06-06
    方法 viewpager Android
  • docker 挂载MySQL实现数据持久化的实现
    目录环境配置MySQL数据持久化注意事项环境配置 本地操作系统:Win10虚拟机的操作系统:CentOS Stream 8已安装docker,可以参考详细安装教程 MySQL数据持久...
    99+
    2024-04-02
  • SpringMVC实现Controller的三种方式总结
    目录实现Controller的三种方式1.实现Controller接口2.实现HttpRequestHandler接口3.全注解关于SpringMVC的控制器(Controller)...
    99+
    2024-04-02
  • absolute之实现居中的三种方式
    1. 使用绝对定位和负边距的方式:首先,将需要居中的元素的定位属性设置为绝对定位,然后使用负边距来将元素的宽度和高度的一半向左和向上...
    99+
    2023-09-12
    absolute
  • JAVA实现Base64编码的三种方式
    目录定义: 二进制文件可视化sun 包下的 BASE64Encoderapache 包下的 Base64util 包下的 Base64 (jdk8)定义: 二进制文件可视化 Base...
    99+
    2024-04-02
  • 反编译jar实现的三种方式
    目录工具准备三种方式1.使用fernflower反编译之后再编译2.使用javassist动态修改class3.通过引入原来的jar包,修改代码(推荐)总结工具准备 相同大版本的jd...
    99+
    2024-04-02
  • 实现 Java 平台的三种方式(转)
    实现 Java 平台的三种方式(转)[@more@]实现 Java 平台的三种方式广泛地说,只要能执行 Java bytecode 者,就可以称为 Java 平台(Java platform)。大致上,实现 Java 平台的方式有三种,分别...
    99+
    2023-06-03
  • 关于分布式锁的三种实现方式
    目录分布式锁实现方案基于数据库实现分布式锁基于Zookeeper实现分布式锁加锁和解锁流程利用curator实现基于缓存实现分布式锁,以Redis为例三种方案比较Java中的锁主要包括synchronized锁和JUC包...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作