Docker:Docker从入门到精通(一)- Docker简介

一、前言

通过本专栏的学习,我们将了解
  1. 掌握Docker基础知识,能够理解Docker镜像与容器的概念
  2. 完成Docker安装与启动
  3. 掌握Docker镜像与容器相关命令
  4. 掌握Tomcat Nginx 等软件的常用应用的安装
  5. 掌握docker迁移与备份相关命令
  6. 能够运用Dockerfile编写创建容器的脚本
  7. 能够搭建与使用docker私有仓库

二、Docker简介

Docker官网 https://www.docker.com/

1. 认识虚拟化

  虚拟化就是将计算机的物理资源抽象成逻辑资源,让一台计算机变成几台甚至上百台相互隔离的虚拟计算机,或者让网络节点不受物理位置的限制而自由分配资源的技术。虚拟化技术允许用户通过软件来模拟硬件资源,从而实现资源的灵活分配和高效利用。

  在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用。

  虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。

2. Docker介绍
在这里插入图片描述

  Docker是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低。Docker在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和部署。使得Docker技术比传统的虚拟化技术更为轻便、快捷。

2.1 Docker的核心组件:

  Docker引擎(Docker Engine):Docker的核心组件,负责创建和管理容器。它提供了API来执行容器生命周期管理(如创建、运行、停止、删除容器)以及容器镜像管理(如拉取、构建、存储、上传镜像)等任务。

  Docker客户端(Docker Client):用户通过Docker客户端与Docker引擎进行交互,执行Docker命令。客户端可以是命令行界面(CLI)或图形用户界面(GUI)。

  Docker镜像(Docker Images):Docker镜像是一个轻量级、可执行的独立软件包,包含了运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。Docker使用镜像来创建容器。

  Docker容器(Docker Containers):容器是镜像的运行实例。你可以使用Docker API或CLI来运行、停止、移动或删除容器。容器是完全使用沙箱机制,相互之间不会有任何接口,确保了应用程序的隔离性和安全性。

  Docker仓库(Docker Registries):Docker仓库用于存储和分发Docker镜像。Docker Hub是Docker的官方公共仓库,但你也可以使用私有仓库来存储和管理自己的镜像。

2.2 Docker的主要优势:

  简化配置:Docker通过容器化技术简化了应用程序的配置和部署过程。

  代码与环境的一致性:Docker容器确保了应用程序在不同环境中的代码和环境一致性。

  提高开发效率:开发者可以在本地使用Docker容器来模拟生产环境,从而更快地开发和测试应用程序。

  提高资源利用率:Docker容器比传统的虚拟机更轻量级,因此可以更有效地利用系统资源。

  便于迁移和扩展:Docker容器可以轻松地从一个环境迁移到另一个环境,并支持水平扩展,以应对高并发和高负载的情况。

3. 容器与虚拟机比较

在这里插入图片描述

在这里插入图片描述

1. 轻量级与资源消耗

  容器:轻量级,共享主机操作系统内核,因此启动更快,资源消耗更少。例如,Docker容器可以迅速启动,并且每个容器仅占用少量的系统资源。

  虚拟机:相对较重,每个虚拟机都有自己的操作系统和应用程序,因此需要更多的资源,包括内存、存储和CPU。虚拟机的启动时间也通常较长。

2. 隔离性

  容器:提供进程级别的隔离,容器之间的隔离性相对较弱。尽管如此,容器通过命名空间(namespaces)和控制组(cgroups)等技术实现了一定程度的资源隔离。

  虚拟机:提供硬件级别的隔离,每个虚拟机都有自己独立的操作系统和内核,因此隔离性更强。虚拟机之间的交互受到严格的限制,确保了更高的安全性。

3. 可移植性

  容器:由于容器共享主机操作系统内核,因此容器镜像在不同操作系统之间的可移植性更高。容器可以在任何支持容器运行时的环境中运行,无论是本地开发环境还是云端生产环境。

  虚拟机:虚拟机镜像通常包含完整的操作系统和应用程序,因此其可移植性受到操作系统兼容性的限制。虚拟机可以在几乎所有操作系统上运行,但可能需要额外的配置和调整。

4. 安全性

  容器:容器共享主机操作系统内核,因此如果主机操作系统存在漏洞,容器可能受到威胁。然而,通过安全配置和最佳实践,可以降低这种风险。

  虚拟机:由于虚拟机提供了更强的隔离性,因此通常更安全。虚拟机之间的隔离性更好,减少了潜在的安全风险。

5. 资源利用率

  容器:由于容器共享操作系统内核,因此可以在同一台主机上运行多个容器,从而提高了资源利用率。

  虚拟机:每个虚拟机都需要独立的操作系统和应用程序,因此资源利用率相对较低。然而,在某些情况下,虚拟机可以提供更好的性能和稳定性。

6. 管理复杂性

  容器:通常更容易管理,因为它们可以轻松扩展和更新。容器编排工具(如Kubernetes)可以进一步简化容器的管理和部署。

  虚拟机:管理可能需要更多的手动干预和专业知识。然而,虚拟机管理工具(如VMware vCenter)可以帮助简化虚拟机的管理和维护。

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

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

相关文章

单机上使用docker搭建minio集群

单机上使用docker搭建minio集群 1.集群安装1.1前提条件1.2步骤指南1.2.1安装 Docker 和 Docker Compose(如果尚未安装)1.2.2编写docker-compose文件1.2.3启动1.2.4访问 2.使用2.1 mc客户端安装2.2创建一个连接2.3简单使用下 这里在ubuntu上单机安装一个m…

Image Downloader下载文章图片的WordPress插件

源码介绍 一个用于下载图片的WordPress插件,包含下载统计功能,支持任何主题使用 用户点击下载后自动打包该文章所有原始图片,并把文章标题作为压缩包的文件名。 不占用服务器空间,也不占网盘空间,直接利用浏览器的性…

PLC通讯

PPI通讯 是西门子公司专为s7-200系列plc开发的通讯协议。内置于s7-200 CPU中。PPI协议物理上基于RS-485口,通过屏蔽双绞线就可以实现PPI通讯。PPI协议是一种主-从协议。主站设备发送要求到从站设备,从站设备响应,从站不能主动发出信息。主站…

VScode+stfp插件,实现文件远程同步保存【2025实操有效】

目录 1 痛点2 准备工作3 操作步骤3.1 第一步,下载STFP插件3.2 第二步,修改配置文件3.3 第三步,测试是否成功 4 后记 1 痛点 我一直用vscode远程连接服务器,传代码文件等到服务器上面,突然有一次服务器那边尽心维修&am…

【quicker】调节PPT指定字号字体大小/快速调节WPS的PPT字体大小

在quicker的拓展动作中找不到直接指定字号大小方式的动作。 换个思路,既然无法通过alt键模拟,不如模拟右键菜单触发?尝试过失败了 所以有了第三种方法 ,首先给字体窗口设置快捷键,此处设置的是altshiftf,然…

Grouped-Query Attention(GQA)详解: Pytorch实现

Grouped-Query Attention(GQA)详解 Grouped-Query Attention(GQA) 是 Multi-Query Attention(MQA) 的改进版,它通过在 多个查询头(Query Heads)之间共享 Key 和 Value&am…

百度百舸 DeepSeek 一体机发布,支持昆仑芯 P800 单机 8 卡满血版开箱即用

在私有云环境中成功部署 DeepSeek 满血版并实现性能调优,并不是一件容易的事情。选择合适的 GPU 配置、安装相应的环境、成功部署上线业务、加速推理任务加速、支撑多用户并发 …… 完成业务测试,成功融入生产业务中。 为了帮助企业快速实现 DeepSeek 服…

c++入门-------命名空间、缺省参数、函数重载

C系列 文章目录 C系列前言一、命名空间二、缺省参数2.1、缺省参数概念2.2、 缺省参数分类2.2.1、全缺省参数2.2.2、半缺省参数 2.3、缺省参数的特点 三、函数重载3.1、函数重载概念3.2、构成函数重载的条件3.2.1、参数类型不同3.2.2、参数个数不同3.2.3、参数类型顺序不同 前言…

tortoiseGit的使用和上传拉取

tortoiseGit的使用和上传拉取 下载TortoiseGit 通过网盘分享的文件:tortoiseGit.zip 链接: https://pan.baidu.com/s/1EOT_UsM9_OysRqXa8gES4A?pwd1234 提取码: 1234 在电脑桌面新建文件夹并进入 右击鼠标 将网址复制上去 用户名和密码是在git注册的用户名和…

Mybatis学习总结

官网 概念 用于简化JDBC的开发。 在配置mybatis的时候如果没有建立连接识别不了信息,我们需要在idea配置mysql的配置信息 JDBC是一套操作关系数据库的API,有效率,和mybatis比起来资源节约,性能高,不繁琐。 数据库连…

SQL笔记#数据更新

一、数据的插入(INSERT语句的使用方法) 1、什么是INSERT 首先通过CREATE TABLE语句创建表,但创建的表中没有数据;再通过INSERT语句向表中插入数据。 --创建表ProductIns CREATE TABLE ProductIns (product_id CHAR(4) NOT NULL,product_name …

dockerfile构建haproxy

1. 结构目录 [rootlocalhost ~]# tree haproxy/ haproxy/ ├── dockerfile └── files├── haproxy-2.5.0.tar.gz├── haproxy.cfg├── install.sh└── start.sh1 directory, 5 files [rootlocalhost ~]# [rootlocalhost ~]# cd haproxy/ [rootlocalhost haproxy]…

Docker(Nginx)部署Vue

简介:目标使用docker将vue生成的dist文件,结合nginx生成镜像,然后运行; 1、首选确保vue项目正确运行,并能正确打包dist文件; 2、查看已经生成的dist文件 3、将dist文件打包为rar文件或者zip文件&#xf…

C++——模版(二)

前言 我们前面讲过模版的一,不知道大家还有没有所印象,如果大家不太能回忆起来可以再去前面看一下,那通过我们讲解了几个容器之后,相信大家现在应该已经对模版很熟悉了,那模版还剩下一些其他的内容我们就在这里进行讲…

算法与数据结构(旋转链表)

题目 思路 每个节点向右移动k个位置,其实就是从头开始遍历,将n-k个节点顺序插入到链表的尾部。 如上图所示的示例1,先将1插入到5的后面,再将2插入到1的后面,最后将3插入到2的后面即可。 代码详解 定义一个cur变量用…

TOGAF之架构标准规范-信息系统架构 | 应用架构

TOGAF是工业级的企业架构标准规范,信息系统架构阶段是由数据架构阶段以及应用架构阶段构成,本文主要描述信息系统架构阶段中的应用架构阶段。 如上所示,信息系统架构(Information Systems Architectures)在TOGAF标准规…

智能优化算法:莲花算法(Lotus flower algorithm,LFA)介绍,提供MATLAB代码

一、 莲花算法 1.1 算法原理 莲花算法(Lotus flower algorithm,LFA)是一种受自然启发的优化算法,其灵感来源于莲花的自清洁特性和授粉过程。莲花的自清洁特性,即所谓的“莲花效应”,是由其叶片表面的微纳…

CSS 媒体查询:从入门到精通,打造跨设备完美体验

在当今移动互联网时代,用户访问网站的设备早已不再局限于桌面电脑,手机、平板等各种屏幕尺寸的设备层出不穷。为了确保用户在不同设备上都能获得良好的浏览体验,响应式网页设计应运而生。而 CSS 媒体查询,正是实现响应式设计的核心…

【Python LeetCode 专题】树

LeetCode 题目104. 二叉树的最大深度(gif 图解)方法一:后序遍历(DFS)方法二:层序遍历(BFS)872. 叶子相似的树(DFS 遍历)1448. 统计二叉树中好节点的数目(DFS 遍历)437. 路径总和 III(前缀和 + DFS 回溯)1372. 二叉树中的最长交错路径(DFS)236. 二叉树的最近公共…

Spring有哪些缺点?

大家好,我是锋哥。今天分享关于【Spring有哪些缺点?】面试题。希望对大家有帮助; Spring有哪些缺点? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring框架是一个广泛使用的企业级Java开发框架,提供了丰富的功能和强大的灵…