【Docker】Docker容器数据卷、容器卷之间的继承和DockerFIle的详细讲解

🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。
🏀系列专栏:陈童学的日记
💡其他专栏:C++STL,感兴趣的小伙伴可以看看。
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​
⛱️万物从心起,心动则万物动🏄‍♂️

在这里插入图片描述

前言:Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux系统 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker容器数据卷、容器卷之间的继承和DockerFIle的详细讲解

  • Docker中的容器数据卷的特点、创建和使用讲解
    • 容器数据卷的特点
    • 容器数据卷的创建和使用
  • Docker中容器卷之间的继承讲解
  • Dokcer中的DokcerFIle讲解

Docker中的容器数据卷的特点、创建和使用讲解

  Docker中的容器数据卷是一种用于持久化存储数据的特殊类型的目录或文件。它们允许容器之间共享数据,并且在容器被删除或重新创建时仍然保留数据。
在这里插入图片描述

容器数据卷的特点

容器数据卷具有以下特点:

  • 1.持久性:容器数据卷是在主机上的持久目录,它们不会受到容器的生命周期的影响。即使容器被删除,数据卷仍然存在。

  • 2.共享性:多个容器可以共享同一个数据卷,这样它们之间可以轻松地共享文件和数据。这对于多个容器之间的通信和数据共享非常有用。

  • 3.数据卷容器:可以创建一个专门用于管理数据卷的容器,其他容器可以通过挂载这个数据卷容器来访问其中的数据。这样可以使数据卷的管理更加灵活和方便。

  • 4.数据卷的更新:当数据卷中的内容被更新时,所有挂载该数据卷的容器都可以立即看到更新后的内容。这使得容器之间的数据同步更加简单。

容器数据卷的创建和使用

在Docker中,可以通过以下方式来创建和使用容器数据卷:

1.使用-v--volume选项来指定一个本地路径作为容器数据卷:

docker run -v /path/on/host:/path/in/container image_name

这样会将主机上的/path/on/host目录挂载到容器中的/path/in/container目录。

2.使用--mount选项来指定一个本地路径作为容器数据卷:

docker run --mount type=bind,source=/path/on/host,target=/path/in/container image_name

这种方式与上述的-v选项类似,但提供了更多的灵活性和选项设置。

3.使用数据卷容器:

首先创建一个数据卷容器:

docker create --name data_container -v /path/in/container image_name /bin/true

然后在其他容器中挂载该数据卷容器:

docker run --volumes-from data_container image_name

以上就是是Docker中容器数据卷的基本概念和用法啦。通过使用容器数据卷,可以方便地管理和共享数据,使得容器之间的数据交互更加便捷。

Docker中容器卷之间的继承讲解

  在Docker中,容器卷之间可以使用继承关系来共享和传递数据。当一个容器使用另一个容器的卷作为继承源时,它将获得对该卷中数据的访问权限。
  继承容器卷指是通过在一个容器中定义一个或多个卷,并在其他容器中使用相同的卷来实现的。当一个容器继承其他容器的卷时,它可以访问和修改这些卷中的数据。
在这里插入图片描述

下面让我们来看看Docker容器卷之间继承实现:

1.创建一个父容器:首先,你需要创建一个包含所需数据的父容器。可以使用命令docker run来创建一个含有卷的容器。例如,运行以下命令来创建一个名为parent_container的父容器,并将/data目录映射到卷中:

docker run -v /data --name parent_container image_name

2.继承卷的容器:接下来,你可以通过使用--volumes-from标志来创建一个新的子容器,并继承父容器中的卷。例如,运行以下命令来创建一个名为child_container的子容器,并继承parent_container中的卷:

docker run --volumes-from parent_container --name child_container image_name

3.访问继承的卷:在子容器中,你可以像访问本地目录一样访问继承的卷。例如,可以使用以下命令在子容器中查看/data目录中的文件:

docker exec -it child_container ls /data

4.修改继承的卷:子容器可以修改继承的卷中的数据。例如,可以使用以下命令在子容器中创建一个新文件:

docker exec -it child_container touch /data/new_file.txt

5.共享数据:当父容器或子容器修改继承的卷中的数据时,其他继承了同一卷的容器也可以访问到更新后的数据。

  需要我们注意的是,当父容器被删除时,继承的卷不会被自动删除。如果你希望删除继承的卷,可以使用docker rm -v命令。

以上就是关于容器卷之间继承的一些东东啦。继承容器卷是一种方便的方法,允许多个容器共享和访问相同的数据。它在一些场景中特别有用,比如在使用数据库容器时,多个应用程序容器可以共享数据库数据。

Dokcer中的DokcerFIle讲解

  Dockerfile是一个文本文件,用于定义如何构建Docker镜像。它包含一系列的指令(instructions),这些指令告诉Docker引擎如何构建镜像的每个步骤。下面是对Dockerfile的详细讲解:

1.基础镜像设置:在Dockerfile的第一行,通过指定一个基础镜像来开始构建过程。可以选择官方提供的基础镜像,也可以使用自定义的基础镜像。例如,使用官方的Ubuntu 20.04作为基础镜像:

FROM ubuntu:20.04

2.维护者信息:通过MAINTAINER指令可以指定该镜像的维护者信息。例如:

MAINTAINER Your Name <email@example.com>

3.拷贝文件:使用COPY指令将文件从主机复制到镜像中的指定位置。例如,将当前目录下的app.py文件复制到镜像的/app目录中:

COPY app.py /app/

4.执行命令:使用RUN指令在镜像中执行命令。可以执行任何有效的Shell命令或命令行工具。例如,安装Python和一些依赖包:

RUN apt-get update && apt-get install -y python3 python3-pip

5.设置工作目录:使用WORKDIR指令设置工作目录,后续的命令将在该目录下执行。例如,设置工作目录为/app:

WORKDIR /app

6.暴露端口:使用EXPOSE指令声明容器运行时需要暴露的端口。例如,暴露80端口:

EXPOSE 80

7.容器启动命令:使用CMD指令指定容器启动时要执行的命令。只能有一个CMD指令,如果有多个,只有最后一个会生效。例如,运行Python应用:

CMD ["python3", "app.py"]

7.构建镜像:通过在Dockerfile所在的目录中运行docker build命令来构建镜像。例如:

docker build -t image_name:tag .

在这里插入图片描述

  OK,以上是Dockerfile的一些常用指令和用法。通过编写Dockerfile,可以定义如何构建一个自定义的镜像,包括安装软件、拷贝文件、设置环境变量等。这样可以实现可重复、可自动化的镜像构建过程,还是比较方便滴。

如果本文对大家有所帮助的话,还望各位能给我点赞、收藏并评论一下,感谢各位💕!!! 另如果大家有什么疑问或者建议的话,欢迎评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/77069.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Amazon ECS Anywhere 在边缘部署 Amazon IoT Greengrass

1.概述 亚马逊云科技提供了完备的IoT服务能力&#xff0c;涵盖设备服务、连接和控制服务以及云端分析服务&#xff0c;是快速构建安全可靠、可扩展的 IoT 平台的常见选择。Amazon IoT Greengrass 边缘运行时和云服务&#xff0c;可帮助您在设备上构建、部署和管理 IoT 应用。A…

ansible常见模块的运用

ansible常见模块的运用 一&#xff1a;Ansible简介二&#xff1a;ansible 环境安装部署管理端安装 ansibleansible 目录结构配置主机清单配置密钥对验证 三&#xff1a;ansible 命令行模块1&#xff0e;command 模块在远程主机执行命令&#xff0c;不支持管道&#xff0c;重定向…

【C++】STL——vector的模拟实现、常用构造函数、迭代器、运算符重载、扩容函数、增删查改

文章目录 1.模拟实现vector1.1构造函数1.2迭代器1.3运算符重载1.4扩容函数1.5增删查改 1.模拟实现vector vector使用文章 1.1构造函数 析构函数 在C中&#xff0c;vector是一个动态数组容器&#xff0c;可以根据需要自动调整大小。vector类提供了几个不同的构造函数来创建和初…

【计算机网络】NAT技术

文章目录 1. NAT技术简介2. 使用NAT技术转换IP的过程3. NAPT4. NAT技术的缺陷5. NAT和代理服务器 1. NAT技术简介 NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术&#xff0c;是解决IP地址不足的主要手段&#xff0c;并且能够有效避免外…

【测试学习三】软件测试的生命周期 BUG的相关知识

目录 一、软件测试的生命周期&#xff08;重要&#xff09; &#x1f351;1、软件的生命周期&#xff1f; &#x1f351;2、软件测试的生命周期&#xff1f; 二、关于BUG &#x1f351;1、如何描述与定义一个BUG&#xff1f;&#xff08;了解&#xff09; &#x1f351;2…

滑动奇异频谱分析:数据驱动的非平稳信号分解工具(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

分治法、回溯法与动态规划

算法思想比较 回溯法&#xff1a;有“通用解题法”之称&#xff0c;用它可以系统地搜索问题的所有解。回溯法是按照深度优先搜索(DFS)的策略&#xff0c;从根结点出发深度探索解空间树分治法&#xff1a;将一个难以直接解决的大问题&#xff0c;分割成一些规模较小的相同问题&…

如何建立含有逻辑删除字段的唯一索引

业务场景 在实际工作当中&#xff0c;遇到一个场景&#xff0c;就是在用户注册时&#xff0c;名字要全局唯一&#xff0c;当然&#xff0c;我们是可以对用户进行删除的&#xff0c;你会怎么去做&#xff1f; 分析 一般来说&#xff0c;我们可以在用户注册请求时&#xff0c…

Typescript+React入门

初识Typescript 出现背景 Typescript&#xff08;以下简称TS&#xff09;实际上就是JavaScriptType&#xff0c;用数据类型的方式来约束了JS的变量定义 在JS的基础上增加了类型支持 在JS中大多数错误都是因为数据类型造成的&#xff0c;所以TS为了规避这个问题加入了类型限制…

iPhone 6透明屏是什么?原理、特点、优势

iPhone 6透明屏是一种特殊的屏幕技术&#xff0c;它能够使手机屏幕变得透明&#xff0c;让用户能够透过屏幕看到手机背后的物体。 这种技术在科幻电影中经常出现&#xff0c;给人一种未来科技的感觉。下面将介绍iPhone 6透明屏的原理、特点以及可能的应用。 iPhone 6透明屏的原…

尚品汇总结三:商城首页(面试专用)

目录 首页商品分类实现 1、封装数据接口 2、页面静态化&#xff1a; 什么是页面静态化 为什么要使用静态化 首页商品分类实现 前面做了商品详情&#xff0c;我们现在来做首页分类&#xff0c;我先看看京东的首页分类效果&#xff0c;我们如何实现类似效果&#xff1a; 思路…

shell 脚本

一、使用PID过滤该进程的所有信息 #! /bin/bash # Function: 根据用户输入的PID&#xff0c;过滤出该PID所有的信息 read -p "请输入要查询的PID: " P nps -aux| awk $2~/^$P$/{print $11}|wc -l if [ $n -eq 0 ];thenecho "该PID不存在&#xff01;&#xff0…

【深度学习】MAT: Mask-Aware Transformer for Large Hole Image Inpainting

论文&#xff1a;https://arxiv.org/abs/2203.15270 代码&#xff1a;https://github.com/fenglinglwb/MAT 文章目录 PSAbstractIntroductionRelated WorkMethod总体架构卷积头Transformer主体Adjusted Transformer Block Multi-Head Contextual Attention Style Manipulation …

原型链污染例题复现

一、什么是原型链 下面我们通过这个小例子来看看。 可以看到b在实例化为test对象以后&#xff0c;就可以输出test类中的属性a了。这是因为在于js中的一个重要的概念&#xff1a;继承。而继承的整个过程就称为该类的原型链。 在javascript中,每个对象的都有一个指向他的原型(p…

【Unity3D应用案例系列】Unity3D中实现文字转语音的工具开发

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中&#xff0c;会遇到将文字转语音输出的需求&#xff0…

问题解决方案

前端开发 1、npm安装的时候老是卡住 reify:rxjs: timing reifyNode:node_modules/vue/cli/node_modules 查看当前使用的那个镜像 nrm lsnpm ---------- https://registry.npmjs.org/yarn --------- https://registry.yarnpkg.com/cnpm --------- https://r.cnpmjs.org/taobao …

【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)

这篇文章&#xff0c;主要介绍如何使用JavaFreemarker模板引擎&#xff0c;根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;创建Freemarker工具类 &…

【安全测试】Web应用安全之XSS跨站脚本攻击漏洞

目录 前言 XSS概念及分类 反射型XSS(非持久性XSS) 存储型XSS(持久型XSS) 如何测试XSS漏洞 方法一&#xff1a; 方法二&#xff1a; XSS漏洞修复 原则&#xff1a;不相信客户输入的数据 处理建议 资料获取方法 前言 以前都只是在各类文档中见到过XSS&#xff0c;也进…

可缝合神经网络

文章目录 Stitchable Neural Networks摘要本文方法实验结果 Stitchable Neural Networks 摘要 包含大量强大的预训练模型族(如ResNet/DeiT)的model zoo已经达到了前所未有的范围&#xff0c;这对深度学习的成功有重要贡献。由于每个模型族都由具有不同尺度的预训练模型(例如&…

SpringMVC基于SpringBoot的最基础框架搭建——包含数据库连接

SpringMVC基于SpringBoot的最基础框架搭建——包含数据库连接 背景目标依赖配置文件如下项目结构如下相关配置如下启动代码如下Controller如下启动成功接口调用成功 背景 工作做了一段时间&#xff0c;回忆起之前有个公司有线下笔试&#xff0c;要求考生做一个什么功能&#x…