【docker】了解什么是Docker

2024-09-07 14:36
文章标签 docker 了解

本文主要是介绍【docker】了解什么是Docker,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

   最近,在学习如何部署项目的时候,老是出错误,然后朋友推荐了去学一下docker,然后自己就去学了【尚硅谷】的关于docker的教程视频,学完之后,感觉docker真的强,可以把我们做好的app的进行跨平台、快速的运行、构建以及分享出去。学会了docker在掌握一项新的容器虚拟化技术的同时又方便了我们项目的一次分装,跨平台运行。所以我准备将自己学习的内容以博客的形式记录,方便后期的学习与回顾,当然大家也在小破站可以去看【尚硅谷】相应的视频讲解!

二、什么是Docker

这里借用docker官网(Docker: Accelerated Container Application Development)的一句话来解释:Docker就是用来加速我们应用的构建、分享以及运行的容器虚拟化技术!

PS:现在的docker官网已经不能直接访问了,作为一个IT人员,要懂得自己施加一些“魔法”哦

三、Docker的工作原理

这里就借用【尚硅谷】视频里的一个插图来记录一下Docker的工作原理。

在这幅图中,有Client、Docker Host、Registry(应用市场)这三个部分,其中Docker Host(Docker 主机)表示我们的一台机器下载了我们的Docker那么这台机器就是我们的Docker主机,Docker的后台进程Daemon就会一直运行为我们服务;而Client表示一个命令行程序,可以通过命令(docker pull 、docker run等)来操作我们的Daemon;而Registry(应用市场)是Docker自己的应用市场,里面有很多的应用软件,这些应用软件被称为镜像。

Docker_hub应用市场:

1、如何Run

如上图所示,以运行redis为例,我们现在Client端执行docker pull redis命令(步骤①),此时我们的Daemon就回去应用市场找到我们的redis镜像(步骤②),将redis镜像下载到本机(步骤③),Client再执行docker run redis命令(步骤④),此时我们的Daemon就会找本地的redis镜像,如果找不到它也会自动下载(步骤⑤),找到这个镜像后就会启动它(步骤⑥),此时这个redis镜像就被启动了,我们把它叫做容器,当然我们可以启动多个容器!这就是我们如何Run的一个过程!

2、如何Build

如上图所示,我们有个构建好的软件OpenJDK,我们首先在Client端执行docker build xxx(软件名称)(步骤①),Daemon就会帮我们制造一个镜像(步骤②),然后就会生成一个OpenJDK镜像(步骤③),再在Client端执行docker push xxx(软件名称)(步骤④),此时Daemon就会将我们的OpenJDK镜像推送到我们的应用市场(步骤⑤),当OpenJDK镜像在应用市场时,其他人也就可以下载和访问我们的镜像了。

3、如何Share

其实,当我们讲解了Run、Build后,Share我们的软件,只需要熟悉docker pull xxx、docker push xxx,懂得如何在应用市场推送和下拉我们的镜像即可!

四、Docker容器化的特点

在上面的Docker的原理图中,我们会有两个比较新的词,分别是镜像容器,至于镜像其实就是软件包,将我们的软件打成了包,至于容器的话,大家可能比较陌生,为什么会有容器化这种思想呢?

1、背景

要回答这个问题,首先我们要从虚拟机(Virtual Machine,简称VM)的发展说起,VM将一台物理设备虚拟为多个逻辑设备,每个逻辑设备可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高设备的工作效率。这表明我们在虚拟化部署的时候,每部署一个虚拟机就需要配一个操作系统,才能运行应用,如果此时我们用户只是做一些简单的操作话,采用VM技术本身比较负载而且会造成资源的浪费,迁移应用程序的话,也需要迁移整个VM。所以此时急需一种轻量级的能实现应用程序之间相互独立运行的虚拟化技术!

2、Docker容器

基于以上的背景,我们的容器虚拟化技术就孕育而生,它同时兼顾了我们的轻量级隔离环境的存在,它之所以能这样是因为,它不像VM采用操作系统级的资源隔离,容器采用的是进程级的系统隔离。

它具体有以下特点:

①容器属于轻量级的VM、

②容器共享操作系统内核、

③容器拥有自己的文件系统、CPU、内存、进程空间等

④容器互相隔离

⑤容器安全可靠、高密度、跨平台等

五、总结

   总的来说,这篇博客的内容只是让大家对Docker概念和原理有个基本的认识,关于Docker指令的实际操作会在后面的博客中继续记录的,大家感兴趣的可以持续关注哦~

这篇关于【docker】了解什么是Docker的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145332

相关文章

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

debian12安装docker的实现步骤

《debian12安装docker的实现步骤》本文主要介绍了debian12安装docker的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录步骤 1:更新你的系统步骤 2:安装依赖项步骤 3:添加 docker 的官方 GPG 密钥步骤

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文