Docker基础教程 - 1 Docker简介

更好的阅读体验:点这里 ( www.doubibiji.com

1 Docker简介

Docker是一个强大的容器化平台,让你能够更轻松地构建、部署和运行应用程序。

下面我们来学习 Docker。


1.1 Docker是什么

1 现在遇到的问题

  • 每次部署一台服务器,需要安装各种依赖,配置各种环境,十分麻烦;
  • 应用程序在我的电脑上运行完全没有问题,你说在你的电脑上不行,环境或配置不同导致的各种问题;
  • 由于开发、测试和生产环境配置不一致,导致在生产环境中出现了在开发环境中未曾出现的bug;
  • 一台服务器,硬件大部分时间处于闲置状态,资源被浪费;
  • 等等…

2 虚拟机技术

使用虚拟机,我们可以使用同一个镜像文件,创建多个虚拟机,多个虚拟机的环境和配置是一模一样的,这样就不会存在多个虚拟机环境不一样的问题了。

3 Docker是怎么解决的

Docker 和虚拟机的思路是类似的,Docker 将应用程序及其依赖项打包成镜像,镜像包含了应用程序所需的所有内容,包括代码、运行时环境、系统工具、库和依赖项。开发者可以在本地构建镜像,并将其部署到任何地方,无需担心环境差异导致的问题。

虚拟机技术将镜像运行为一个个独立的虚拟机,Docker 引擎将镜像运行成一个个的容器,每个容器也是相互隔离,互不影响,确保了应用程序的安全性和稳定性。

总的来说,Docker通过其容器化技术,将应用程序和运行它所需要的环境、依赖等打包成镜像,这样就没有环境问题了。

举个栗子:

我们可以直接下载 Redis 镜像,一条语句将镜像运行起来,就可以直接使用了,不需要复杂的安装。我们的项目需要 Redis、MySql、JDK、RabbitMQ,我们可以直接将项目、Redis、Mysql、JDK、RabbitMQ 所有的这些打包成一个镜像,部署在各个机器上,就不需要一个个服务器安装环境了,听着是多么的顺耳。

4 Docker与虚拟机技术的不同

  1. 虚拟化层次
  • 虚拟机技术: 使用Hypervisor(如VMware、VirtualBox等)在物理服务器上创建多个完整的虚拟机。每个虚拟机都包含了自己的操作系统、内核和用户空间,相互独立。
  • Docker: 利用宿主机的操作系统内核,并在其之上运行容器。容器与宿主机共享同一个操作系统内核,但各自拥有自己的用户空间。这使得容器更为轻量级。
  1. 资源利用方式
  • 虚拟机技术: 每个虚拟机需要独立的操作系统,因此较为笨重,占用更多资源。多个虚拟机在同一物理机上运行时,会占用更多的内存和硬盘空间,随随便便20、30G的占用空间。
  • Docker: 容器共享宿主机的操作系统,不需要额外的操作系统虚拟化,因此更为轻量级。它们利用相同的内核和资源,节省了资源,并允许更多容器在同一台机器上运行。
  1. 启动时间和性能
  • 虚拟机技术: 虚拟机启动需要较长时间,因为需要启动完整的操作系统。
  • Docker: 容器启动速度更快,因为它们不需要启动完整的操作系统,只需启动应用及其依赖项即可。
  1. 环境隔离
  • 虚拟机技术: 虚拟机提供了完全隔离的环境,每个虚拟机都是相对独立的。
  • Docker: 容器也提供了良好的隔离性,但与虚拟机相比,容器之间的隔离度略低。

总体来说,Docker相对于传统虚拟机技术更为轻量级、启动更快、资源利用更高效,因为它利用了宿主机的操作系统内核,并通过容器实现了更好的资源共享和隔离。使得应用程序能够更便捷、高效、一致地部署和运行,解决了环境一致性、快速部署、资源利用率、版本控制、隔离性等多个方面的问题。

1.2 Docker 三要素

在学习操作 Docker 之前,先介绍一下 Docker 中的基础概念。

  • 镜像
  • 容器
  • 仓库

先用一句话解释:我们从仓库中下载镜像,然后运行镜像成为容器,一个镜像可以运行多次形成多个容器实例。


1 镜像(image)

镜像是一个静态的、只读的文件,其中包含了应用程序运行所需的所有内容,如代码、运行时环境、系统工具、库和依赖项。它是一个模板,用来创建容器。

使用一个镜像可以创建多个容器。所以用面向对象的方式来比喻的话,镜像就是类,容器就是使用类创建的一个一个实例。


2 容器(container)

容器是镜像的运行时实例,相当于面向对象中的一个个的对象实例。

当你运行一个镜像时,Docker会创建一个容器。它提供了一个隔离的环境,让应用程序可以在其中运行。

所以容器可以被理解为一个隔离的、独立的运行时环境,其中包含了应用程序及其运行所需的一切。


3 仓库(repository)

仓库就是存放镜像的地方,仓库分为公有仓库和私有仓库。

Docker 公司提供了公共的镜像仓库 https://hub.docker.com,里面提供了大量的镜像可以给我们给我们使用,我们也可以基于别人的镜像来创建我们自己的镜像。但是国内访问 dockerhub 速度比较慢,一般使用阿里云或网易云。


在使用 docker run 运行镜像的时候,docker 会检查本机是否存在镜像,如果存在就使用这个镜像运行为一个容器,而如果不存在,就会去 Docker Hub上下载,下载完成,再运行这个镜像。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们一般不会直接运行一个本机不存在的镜像,我们一般会先搜索镜像,找到镜像后,将镜像下载下来,然后再通过镜像创建容器运行。

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

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

相关文章

彻底解决华为手机安装谷歌框架后出现未认证的弹窗问题

引言 本人使用华为手机通过B站等平台学习如何安装谷歌框架与商店后,发现安装谷歌框架后出现未认证的弹窗问题少有解决办法,而且容易复发,在借鉴相关视频后找到解决办法,但视频中的华谷框架需要付费才能使用,本文将提出…

spring注解驱动系列--自动装配

Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依赖关系赋值;依赖注入是spring ioc的具体体现,主要是通过各种注解进行属性的自动注入。 一、Autowired:自动注入 一、注解介绍 1、默认优先按照类型去…

高中数学:函数奇偶性

一、定义 偶函数:定义域关于原点对称,图像关于Y轴对称 f(x)f(-x) 奇函数:定义域关于原点对称,图像关于原点中心对称 f(x)f(-x)0 等价于 f(-x)-f(x) 二、函数奇偶性的四种情况 注意: 即奇又偶的函数,只有…

Linux入门到入土

Linxu Linux 简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口&#xff09…

【复现】宏景HCM 任意文件读取漏洞_63

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 宏景HCM 将人才标签技术应用于员工招聘、人才选拔等环节,通过多维度的标签体系,形成不同专业序列的人才画…

CV | 医学影像上的图像分割模型调研【更新于20240304】

mamba相关的图像分割:VM-Unet,Manba-Unet,BRAU-Net,MDD-Unet,EGE-Unet,U-Mamba 2024.01.01_BRAU-Net Paper:BRAU-Net: U-Shaped Hybrid CNN-Transformer Network for Medical Image Segmentation https://arxiv.org/pdf/2401.00722.pdf 2024.01.09_U-Mamba Paper:U…

猴子吃桃问题(python版)

文章预览: 题目python解法一:运行结果 python解法二:运行结果 python解法三:运行结果 题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早…

flurl升级之后没有FlurlNewtonsoftJsonSerializer

新建NewtonsoftJsonSerializer.cs /// <summary> /// ISerializer implementation based on Newtonsoft.Json. /// Default serializer used in calls to GetJsonAsync, PostJsonAsync, etc. /// </summary> public class NewtonsoftJsonSerializer : IJsonSerial…

Qt 简约美观的加载动画 第九季

这次和大家分享6个非常清爽的加载动画. &#x1f60a; 效果如下 &#x1f60a; 一共三个文件 , 可以直接编译运行的呢 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QGridLayout> int main(int argc, char *argv[]) …

【JAVA重要知识 | 第三篇】深入理解并暴打AQS原理、ReentrantLock锁

文章目录 3.深入理解AQS、ReentrantLock3.1AQS3.1.1AQS简介3.1.2核心结构&#xff08;1&#xff09;设计模型&#xff08;2&#xff09;组成部分&#xff08;3&#xff09;State关键字 3.1.3实现的两类队列&#xff08;1&#xff09;同步队列①CLH②Node③主要行为 img条件队列…

中霖教育:注册安全工程师考是科目有哪些?

注册安全工程师的类型是职业资格证书&#xff0c;需要满足报名条件才能参加考试&#xff0c;考试通过就能发放证书。报名时间一般在八月份&#xff0c;考试时间在十月底左右。 考试科目&#xff1a; 《安全生产法律法规》 《安全生产管理》 《安全生产技术基础》 《安全生…

golang实现openssl自签名双向认证

第一步&#xff1a;生成CA、服务端、客户端证书 1. 生成CA根证书 生成CA证书私钥 openssl genrsa -out ca.key 4096创建ca.conf 文件 [ req ] default_bits 4096 distinguished_name req_distinguished_name[ req_distinguished_name ] countryName …

怎么使用curl2py自动构造爬虫代码并进行网络爬虫

目录 一、了解curl2py 二、安装curl2py 三、使用curl2py生成爬虫代码 四、实际案例&#xff1a;爬取网页数据 五、总结与建议 在当今数据驱动的时代&#xff0c;网络爬虫成为了获取数据的重要工具。对于初学者来说&#xff0c;手动编写爬虫代码可能是一项挑战。幸运的是&a…

PyTorch-神经网络

神经网络&#xff0c;这也是深度学习的基石&#xff0c;所谓的深度学习&#xff0c;也可以理解为很深层的神经网络。说起这里&#xff0c;有一个小段子&#xff0c;神经网络曾经被打入了冷宫&#xff0c;因为SVM派的崛起&#xff0c;SVM不了解的同学可以去google一下&#xff0…

JavaScript 基础学习笔记(五):函数、作用域、匿名函数

目录 一、函数 1.1 声明和调用 1.2 形参和实参 1.3 返回值 二、作用域 2.1 全局作用域 2.2 局部作用域 三、匿名函数 3.1 函数表达式 3.2 立即执行函数 一、函数 理解函数的封装特性&#xff0c;掌握函数的语法规则 1.1 声明和调用 函数可以把具有相同或相似逻辑的代…

NLP_文本张量表示方法(代码示例)

目标 了解什么是文本张量表示及其作用.文本张量表示的几种方法及其实现. 1 文本张量表示 将一段文本使用张量进行表示&#xff0c;其中一般将词汇为表示成向量&#xff0c;称作词向量&#xff0c;再由各个词向量按顺序组成矩阵形成文本表示. ["人生", "该&q…

Linux 实现打印彩色进度条

文章目录 预备知识一、理解回车换行二、认识行缓冲1、代码一、二&#xff08;回车换行理解&#xff09;2、代码三、四&#xff08;sleep函数和ffush函数理解&#xff09; 三、简单倒计时1. 倒计时代码2、效果展示 四、进度条1、效果展示2、进度条代码makefileProcessBar.hProce…

tomcat 反向代理 自建博客 修改状态页 等

一 自建博客 随后&#xff0c;拷贝到webapps下面 并且做软连接 随后重定向 并且下载 cat >/etc/yum.repos.d/mysql.repo <<EOF [mysql57-community] nameMySQL 5.7 Community Server baseurlhttp://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/ enabled1 g…

第十四届蓝桥杯大赛B组 JAVA 蜗牛 (递归剪枝)

题目描述&#xff1a; 这天&#xff0c;一只蜗牛来到了二维坐标系的原点。 在 x 轴上长有 n 根竹竿。它们平行于 y 轴&#xff0c;底部纵坐标为 0&#xff0c;横坐标分别为 x1, x2, …, xn。竹竿的高度均为无限高&#xff0c;宽度可忽略。蜗牛想要从原点走到第 n 个竹竿的底部也…

全域电商数据集成管理与采集|API接口的采集与管理

如今&#xff0c;全渠道零售已是大势所趋。企业电商经营的一大现状就是数据分散各处&#xff0c;比如有来自电商平台私域数据、品牌一方数据、公开的第三方行业数据与电商平台C端页面数据等等。如何集成全域数据日益成为企业数字化基建的难题。 当前电商数据集成的主流方案为人…