SpringCloud技术—Docker详解、案例展示

news2024/9/20 2:50:36

简介:Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。

        总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

目录

1、初始Docker

1.1 什么是Docker

1.2 Docker和虚拟机的区别

1.3 Docker架构

1.4 安装Docker

2、Docker的基本操作

2.1 镜像操作

2.2 容器操作

2.3 创建容器

2.4 容器命令案例

2.5 创建数据卷

2.6 挂载数据卷

3、Dockerfile自定义镜像

3.1 镜像结构

3.2 Dockerfile语法

4、Docker-Compose

4.1 初识DockerCompose

5、Docker镜像服务

5.1 什么是镜像仓库

6、总结


1、初始Docker

1.1 什么是Docker

图 1.1-1 Docker可以解决的问题

大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:

  • 依赖关系复杂,容易出现兼容性问题
  • 开发、测试、生产环境有差异

上图中展示的就是Docker解决项目在移植过程中出现的不兼容的问题,通过提前将所需要的函数库、依赖打包好从而解决了在不同环境中出现的不兼容的问题

1.2 Docker和虚拟机的区别

图 1.2-1 Docker和虚拟机
上图中展示的是Docker和虚拟机的不同,主要区别就是Docker通过打包这一操作,将所需要的依赖、函数库整合到一起,在操作系统方面直接调用其内核命令

1.3 Docker架构

图 1.3-1 Docker架构
上图中展示的是Docker架构,即Docker是一个CS架构,分为客户端、服务端。

1.4 安装Docker

图 1.4-1 安装Docker

百度网盘:

链接:https://pan.baidu.com/s/1DBsqFiYpnxAw3_5h2613YA 
提取码:6666

上图中的链接是Docker安装的MD文件,详细说明了了如何安装,下载下来就好

2、Docker的基本操作

2.1 镜像操作

图 2.1-1 镜像操作命令

上图中展示的就是Docker常见命令,包括拉取镜像,上传镜像

2.2 容器操作

图 2.2-1 容器操作命令
上图中展示的就是Docker中容器的相关命令

2.3 创建容器

图  2.3-1  创建容器步骤
上图中展示的就是Docker创建并且运行容器的命令,图中需要注意的是各个参数的含义,这个命令在执行后会返回一个容器ID,这个ID是全局唯一的

2.4 容器命令案例

图 2.4-1 容器命令案例
上图中展示的就是Docker进入容器,且执行Linux命令的步骤

2.5 创建数据卷

图 2.5-1 容器与数据耦合
上图中展示的就是容器与容器中的数据之间的矛盾
图 2.5-2 容器与数据耦合—数据卷
上图中展示的就是数据卷这一技术点,主要是为了解决 “图 2.5-1 容器与数据耦合” 中的问题
图 2.5-3 数据卷语法
上图中展示的就是数据卷的相关操作命令

2.6 挂载数据卷

图 2.6-1 挂载数据卷

上图中展示的就是创建一个数据卷,并且将数据卷挂到容器目录中

图 2.6-2 挂载目录
上图中展示的就是在虚拟机中创建一个容器,且将宿主机的目录和文件挂载到容器中去

3、Dockerfile自定义镜像

3.1 镜像结构

图 3.1-1 镜像结构

镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成,详细结构如下(从上到下,依次封装)

  • 基础镜像(系统函数库、环境、配置、文件)
  • 层(在基础镜像基础上添加安装包、依赖、配置等)
  • 入口(镜像运行入口、一般是程序的启动脚本和参数)
从上图中我们得知,构建一个镜像的步骤,即(基础镜像、层、入口),这样做的好处是今后的升级方便,针对需要直接修改对应层的代码就好

3.2 Dockerfile语法

 图 3.2-1 Dockerfile语法
上图中展示的就是DockerFile部分语法,在自己开发Docker镜像的时候使用的也是这几个命令

4、Docker-Compose

4.1 初识DockerCompose

图 4.1-1 初识DockerCompose

上图中说明了DockerCompose的分布式应用的创建、配置、步骤。

详情请看小编的详细说明:

百度网盘:https://pan.baidu.com/s/1J-vW2DJMHEh7ecAGULjkLg  提取码:6666

5、Docker镜像服务

5.1 什么是镜像仓库

图 5.1-1 什么是镜像仓库

Docker仓库(Repository)类似与代码仓库,是Docker集中存放镜像文件的场所。我们将镜像仓库分为公共镜像仓库和私有镜像仓库。

公有镜像仓库:是可以被任何人使用的

私有镜像仓库:是指部署在公司或组织内部,主要用于自身应用Docker镜像存储、分发的镜像仓库

详细的搭建步骤,可以下载Docker.md文件,里面有详细的步骤、相关指令代码

百度网盘地址:https://pan.baidu.com/s/1J-vW2DJMHEh7ecAGULjkLg  提取码:6666

6、总结

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录刷题|一刷总结

文章目录 一刷总结一、 成果汇报1、leetcode提交记录2、博客更新记录 二、 经验总结2.1.刷过的所有题型2.1.1、数组2.1.2、链表2.1.3、哈希表2.1.4、字符串2.1.5、栈与队列2.1.6、二叉树2.1.7、回溯2.1.8、贪心2.1.9、动态规划2.1.10、单调栈 2.2、做得好的2.3、做得不好的2.4、…

行业模板|DataEase批发零售大屏模板推荐

DataEase开源数据可视化分析平台于2022年6月发布模板市场(https://templates-de.fit2cloud.com),并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板,方便用户根据…

AtCoder Beginner Contest 350 ----- F - Transpose ---- 题解

F - Transpose: 题目描述: 思路解析: 如果有一对括号,那么删掉括号对,并且将括号对里的字符串翻转,在翻转过程中,使字符串的字母改变大小写。那我们可以通过预处理找到每个括号对。 例如 A(x(AXB)x)B …

计算机网络——数据链路层(介质访问控制)

计算机网络——数据链路层(介质访问控制) 介质访问控制静态划分信道动态划分信道ALOHA协议纯ALOHA(Pure ALOHA)原理特点 分槽ALOHA(Slotted ALOHA)原理特点 CSMA协议工作流程特点 CSMA-CD 协议工作原理主要…

快速开发部署平台Replit

Replit 是可以快速搭建开发、部署环境的平台。能够快速将原型进行部署,代码编辑器支持协同开发,他的在线编辑器做的不错,相当于云上提供了一个 vscode,代码实时更新。Replit 底层是基于容器技术的,可以安全的隔离多个用…

最新Java面试题3【2024中级】

互联网大厂面试题 1:阿里巴巴Java面试题 2:阿里云Java面试题-实习生岗 3:腾讯Java面试题-高级 4:字节跳动Java面试题 5:字节跳动Java面试题-大数据方向 6:百度Java面试题 7:蚂蚁金服Java…

【数据结构2-线性表】

数据结构2-线性表 1 线性表-数组2 线性表-单链式结构2.1 前插顺序单链表2.2 后插顺序单链表2.3 循环单链表2.4 双向链表 总结 线性表、栈、队列、串和数组都属于线性结构。 线性结构的基本特点是除第一个元素无直接前驱,最后一个元素无直接后继之外,其他…

Linux应用开发(8):Linux进程间通信(IPC):管道

Linux应用开发(7):Linux进程间通信(IPC):POSIX消息队列https://blog.csdn.net/tecsai/article/details/137879465 1. 简述 我们在前面已经介绍了进程间通信(IPC)常用的“消息队列”…

[大模型]TransNormerLLM-7B FastApi 部署调用

TransNormerLLM-7B FastApi 部署调用 1. TransNormer 介绍 TransNormerLLM 是一个基于线性注意力的 LLM,在准确性和效率方面均优于传统的基于 softmax 注意力的模型。它是在包含多达1.4 万亿个令牌的高质量语料库上进行训练的,TransNormerLLM 从之前的…

【Scientific American】【科学美国人杂志】2024年4月号:目录部分

说明: 仅供学习、参考使用,请勿用于商业用途。 本期购于新加坡,封面图: Contents Special Report: What we’re learning from AI The Race to Decode an Ancient Scroll How scientists, students, gamers and Silicon Valle…

在 Linux 中删除文件和文件夹

目录 ⛳️推荐 前言 删除文件 🏋️练习文件删除 小心删除 删除目录 🏋️练习文件夹删除 测试你的知识 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到…

setmapAVL树红黑树

目录 关联式容器树形结构的关联式容器setset的模板参数列表set的构造函数set的迭代器set的容量操作set其他操作 multisetmap键值对map的模板参数列表map的迭代器map中元素的修改map的容量与元素访问 multimap底层结构avl树avl树概念AVL树结点的定义AVL树的插入AVL树的旋转AVL树…

(助力国赛)美赛O奖数学建模可视化!!!含代码3(误差限图、冰柱图、树图)

众所周知,数学建模的过程中,将复杂的数据和模型结果通过可视化图形呈现出来,不仅能够帮助我们更深入地理解问题,还能够有效地向评委展示我们的研究成果。   今天,承接《可视化代码2》,作者将与大家分享《…

我用ADAU1467加5个ADAU1772,做20进10出的音频处理板(一):硬件设计思路和原理图

作者的话 ADAU1467是现阶段ADI支持最多通道的ADAU音频DSP,他配合外部的AD/DA,可以实现最多32路音频通道,接了一个小项目,我拿它做了一块20进10出的板,10个MIC/LINE输入,10个LINE IN输入,10个HPOUT&#xf…

Redis(二) 单线程架构

redis 的单线程架构 我们都知道 redis 作为缓存,读取速度是非常快的,但是大家知道 redis 的线程架构是怎样的呢?也就是说,redis 是多线程架构还是单线程架构呢? 我们通过一个例子来了解: 首先在 redis 服…

基于Web的宠物医院信息管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本宠物医院信息管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…

【C++】explicit关键字详解(explicit关键字是什么? 为什么需要explicit关键字? 如何使用explicit 关键字)

目录 一、前言 二、explicit关键字是什么? 三、构造函数还具有类型转换的作用 🍎单参构造函数 ✨引出 explicit 关键字 🍍多参构造函数 ✨为什么需要explicit关键字? ✨怎么使用explicit关键字? 四、总结 五…

MariaDB InnoDB 空洞清理

1、背景 数据库占用服务器内存越来越高,除了bin-log文件之外,还发现了一些带有text或者longtext数据类型字段的表,这种表也会占用很高的服务器磁盘空间 数据库版本: 表引擎: InnoDB 数据量:清理之前1500万…

python安装的详细步骤

下载 1.打开Python官网.我们建议工具类的测试软件还是官网下载比较靠谱. https://www.python.org/getit/ 2.在下图界面中选择需要的方式进行点击 3.直接点击下载.可以进入保存界面,进行保存即可下载,后续安装 4.鼠标放在Downloads显示平台和版本选择界面,点击Windows,进入wi…

【备战算法岗】—— 控制模块复习(持续更新!!!)

1 控制理论基础 1.1 控制模块概述 输入:轨迹线Reference、地图信息、定位信息、车辆反馈信息 输出:刹车、油门、转向 CANBUS:车辆底盘交互协议 参考博客:Apollo CANBUS模块解析 apollo:canbus模块(1&…