Docker简单介绍、特点、与虚拟机技术的区别、核心概念及在CentOS 7 中安装卸载Docker

目录

一、什么是Docker

二、特点

三、Docker与虚拟机技术的区别

四、Docker的核心概念

Docker仓库与仓库注册服务器的区别

五、CentOS7在线安装Docker

安装配置

卸载 


一、什么是Docker

Docker是一个开源的容器化平台,用于打包、部署和运行应用程序。它利用操作系统级别的虚拟化技术,可以将应用程序及其依赖项打包为一个独立的容器,使其可以在任何环境中运行。

可以在不同的操作系统上运行,包括Windows、Linux和Mac。每个容器都是一个独立的运行实例,具有自己的文件系统、进程和网络栈,但与宿主机和其他容器相互隔离。这种隔离性可以确保容器之间互不干扰,提供了更高的安全性。

Docker镜像是一个只读的模板,包含了运行应用程序所需的所有文件和配置。可以通过定义Dockerfile文件来创建镜像,然后使用Docker命令构建和管理这些镜像。

Docker还提供了一套强大的工具和功能,用于管理和监控容器的生命周期。可以使用Docker命令来启动、停止、重启和删除容器,以及查看容器的日志和状态。Docker还支持容器编排和集群管理,可以在多个主机上部署和管理容器集群,提高应用程序的可伸缩性和高可用性。

总的来说,Docker提供了一种简单、快速和可靠的方法来打包、部署和运行应用程序。可以提高开发效率、加快应用程序的交付速度,并提供一致和可重复的开发、测试和生产环境。

二、特点

  • 轻量级:Docker是轻量级的,相对于传统的虚拟机,它们需要更少的资源,可以更快地启动和停止。
  • 可移植性:Docker容器可以在不同的操作系统和云平台上运行,从而实现了应用程序的可移植性。
  • 简单易用:Docker提供了简单易用的命令行工具和API,使得开发人员可以轻松地构建、打包、运输和部署应用程序。
  • 隔离性:Docker容器提供了隔离性,使得不同的容器之间相互独立,从而避免了应用程序之间的冲突和干扰。
  • 可扩展性:Docker容器可以很容易地进行扩展,从而满足了应用程序的需求。
  • 安全性:Docker容器提供了安全的环境,使得应用程序可以在安全的环境中运行,从而保障了应用程序的安全性。

三、Docker与虚拟机技术的区别

  • 虚拟化级别传统的虚拟机技术通过在物理主机上运行一个完整的操作系统来实现虚拟化。每个虚拟机都有自己的内核、操作系统和应用程序,它们之间是完全独立的。而Docker使用了操作系统级别的虚拟化技术,将应用程序及其依赖项打包为一个独立的容器,容器共享宿主机的操作系统和内核,因此更加轻量级和高效。
  • 资源占用:传统虚拟机技术需要为每个虚拟机分配一定的计算资源和内存,并且每个虚拟机都需要运行一个完整的操作系统,因此会占用较多的计算资源。而Docker容器是轻量级的,共享宿主机的操作系统和内核,因此可以更高效地利用计算资源。
  • 启动速度:传统虚拟机技术需要启动一个完整的操作系统,需要较长的启动时间。而Docker容器是基于镜像启动的,启动速度非常快,通常只需几秒钟即可启动一个容器。
  • 系统管理:传统虚拟机技术需要单独管理每个虚拟机的操作系统和应用程序,需要进行独立的更新、配置和维护。而Docker容器可以通过定义Dockerfile文件来创建镜像,镜像可以进行版本控制和共享,容器可以随时启动、停止和迁移,简化了系统管理和维护的工作。

Docker相对于传统的虚拟机技术更加轻量级、高效和灵活,可以提供更快的启动速度和更高的资源利用率。它在容器化应用程序方面提供了一种简单、快速和可靠的解决方案,并在开发、测试和生产环境中提供了一致性和可重复性。

实际案例:以springcloud微服务为例

  • 传统虚拟化方式:7个服务部署需要7台Linux服务器
  • Docker虚拟化方式:7个服务部署只需要1台Linux服务器上安装docker并运行7个容器

四、Docker的核心概念

 Docker大部分的操作都围绕着它的核心概念: 镜像、容器、仓库、Dockerfile和服务。

  • 镜像(Image):镜像是Docker的核心概念,它是一个只读的模板,包含了运行应用程序所需的所有文件和配置。镜像可以用来创建容器。Docker镜像可以通过Dockerfile文件定义,其中包含了构建镜像所需的指令和配置。

  • 容器(Container):容器是从镜像创建的运行实例。容器是一个独立且可隔离的运行环境,包含了应用程序、其依赖项和配置。容器可以启动、停止、重启和删除。容器之间相互隔离,但可以与宿主机和其他容器进行通信。

  • 仓库(Registry):仓库是用于存储和共享Docker镜像的地方。Docker Hub是最常用的公共仓库,提供了大量的官方和社区维护的镜像。除了公共仓库外,还可以搭建私有仓库,用于存储和管理自己的镜像。

  • Dockerfile:Dockerfile是用于定义Docker镜像的文本文件。它包含了一系列的指令和配置,用于构建和配置镜像。通过编写Dockerfile,开发人员可以定义应用程序运行所需的环境、依赖项和配置,使得镜像的构建和管理更加简单和可重复。

  • 服务(Service):服务是用于在分布式环境中部署和管理容器的概念。通过定义服务,可以在多个主机上运行和管理多个容器,实现高可用性和伸缩性。Dock

Docker仓库与仓库注册服务器的区别

Docker仓库 ( Repository )和仓库注册服务器 ( Registry )是Docker中相关的两个概念,区别如下:

  • 仓库注册服务器:仓库注册服务器是Docker仓库的底层实现,它负责存储和管理Docker镜像。每个仓库注册服务器都有一个唯一的地址,用于标识和访问该仓库。Docker Hub是一个公共的仓库注册服务器,也可以搭建私有的仓库注册服务器。搭建私有仓库注册服务器可以提供更好的安全性和控制,适用于组织内部的镜像管理和共享。

  • Docker仓库:Docker仓库是一个存储和共享Docker镜像的地方。它类似于软件仓库,允许用户上传、下载和管理Docker镜像。在Docker中,默认使用的公共仓库是Docker Hub,它包含了大量的官方和社区维护的镜像供用户使用。用户可以通过Docker命令从Docker仓库中拉取镜像到本地,也可以将自己构建的镜像推送到仓库中。

Docker仓库是用户可以访问和使用的集中存储和共享镜像的平台,而仓库注册服务器是底层实现这个仓库的服务器。用户可以从仓库中拉取镜像到本地使用,也可以将自己构建的镜像推送到仓库中共享。公共仓库注册服务器是Docker Hub,也可以搭建私有的仓库注册服务器。

五、CentOS7在线安装Docker

安装配置

  • 内核版本信息检查

    uname -r
  • 卸载可能存在的旧版本

    yum remove docker \ 
    		   docker-client \ 
    		   docker-client-latest \ 
    		   docker-common \ 
    		   docker-latest \ 
    		   docker-latest-logrotate \ 
    		   docker-logrotate \ 
    		   docker-selinux \ 
    		   docker-engine-selinux \ 
    		   docker-engine

 注:旧版本的docker叫做docker或者docker-engine,如果有安装,先卸载其以及其依赖,新版本的docker叫做docker-ce

  1. docker-ce(社区版,免费)

  2. docker-ee(专业版,收费)

  • 安装必要的系统工具

    yum install -y yum-utils device-mapper-persistent-data lvm2

安装依赖软件:

1. yum-utils提供yum-config-manager包,用来管理yum配置文件;
2. lv2device-mapper-persistent-datadockerdevicemapper存储设备的必须依赖;

  • 添加docker-ce安装源

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 默认开启的是stable稳定版仓库,如果想要安装test测试版或者是边缘版本可使用如下命令开启相关模式。

# 边缘版本
yum-config-manager --enable docker-ce-edge
# test测试版
yum-config-manager --enable docker-ce-test

关闭的话只需要将--enable参数换成--disable(可选)

  • 更新yum缓存

    yum makecache fast

  • 安装docker-CE

默认安装的是最新版本的稳定版。

yum -y install docker-ce

查看版本列表请使用如下命令:

yum list docker-ce --showduplicates | sort -r

如果要安装特定版本的docker-CE请使用如下命令格式:

yum install docker-ce-<VERSION STRING>
  • 配置加速器

国内从Docker Hub下载镜像速度很慢,我们可以配置阿里云专属加速器来解决。通过浏览器访问并登陆:  阿里云-计算,为了无法计算的价值

登陆后,进入阿里云“控制台”,搜索“容器镜像服务”

进入容器镜像服务 ACR 后点击管理控制台 进入 容器镜像服务

左侧菜单“镜像工具”,点击镜像加速器,如下:  

将容器右边的“加速器地址”复制下来即可。

修改docker相关配置,配置镜像加速器,如下:

# 创建目录
mkdir -p /etc/docker
# 配置镜像加速器
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://rhgi3sfn.mirror.aliyuncs.com"]
}
EOF

最后,重载docker服务并重启。  

# 重载服务
systemctl daemon-reload
# 重启服务
systemctl restart docker
  • 验证

运行第一个容器(经典的hello world)。

docker run hello-world

输入以上命令后,窗口有输出,表示docker安装成功 。

卸载 

移除Docker:

yum remove docker-ce

删除Docker的安装目录:

rm -rf /var/lib/docker

验证是否删除成功:

docker info

-bash: cd: /usr/bin/docker: 不是目录

我们可以看到已经无法找到 docker 安装目录,证明卸载成功 。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI设计优化电机、电路与芯片?

一、AI进行电机本体设计 使用AI进行电机本体设计是一种前沿且具有潜力的方法&#xff0c;通过深度学习、强化学习、遗传算法等AI技术&#xff0c;可以实现电机设计的自动化和优化。具体应用可以包括以下几个方面&#xff1a; 此图片来源于网络 1. **参数优化**&#xff1a; …

硬件基础知识

CPU制作 cpu组成原理 CPU (Central Processing Unit - 中央处理单元): CPU 是计算机的核心&#xff0c;负责解释和执行程序指令以及处理数据。它由几个关键部分组成&#xff0c;如算术逻辑单元&#xff08;ALU&#xff09;、寄存器、和控制单元&#xff08;CU&#xff09;&…

游戏攻略|基于Springboot和vue的游戏分享平台系统设计与实现(源码+数据库+文档)

游戏攻略分享平台目录 基于Springboot的在线考试管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台&#xff1a; 2、后台 5.2.1管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; …

国际体育日,一起运动起来吧

今天是国际体育日&#xff0c;是时候动一动&#xff0c;燃烧我们的卡路里啦&#xff01;说到运动&#xff0c;我得提提最近刚入手华为WATCH GT4&#xff0c;真心不赖&#xff01; 这个手表特别适合喜欢运动的人&#xff0c;它有100的运动模式&#xff0c;无论你是喜欢跑步、…

数据结构初阶:顺序表和链表

线性表 线性表 ( linear list ) 是 n 个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串 ... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性…

Excel列匹配VLookUp功能使用

生活中很多关于excel多列数据进行匹配计算等场景,其中最常用的一个函数就是VLookUp了,下面直接上图: 得到结果如下: 得到结果如下: 注意: 1.在需要把计算完的数据粘贴到另一列或者另个sheet时,复制后,不要直接ctrlv粘贴,这样会把计算公式粘贴到对应的列.正确做法是:右键粘贴,选…

蓝桥杯每日一题:斐波那契(矩阵乘法)

在斐波那契数列中&#xff0c;Fib00,Fib11,FibnFibn−1Fibn−2(n>1) 给定整数 n&#xff0c;求 Fibnmod10000。 输入格式 输入包含不超过 100100 组测试用例。 每个测试用例占一行&#xff0c;包含一个整数 当输入用例 n−1时&#xff0c;表示输入终止&#xff0c;且该…

Python环境搭建—安装PyCharm开发工具

&#x1f947;作者简介&#xff1a;CSDN内容合伙人、新星计划第三季Python赛道Top1 &#x1f525;本文已收录于Python系列专栏&#xff1a; 零基础学Python &#x1f4ac;订阅专栏后可私信博主进入Python学习交流群&#xff0c;进群可领取Python视频教程以及Python相关电子书合…

JS详解-设计模式

工厂模式&#xff1a; 单例模式&#xff1a; // 1、定义一个类class SingleTon{// 2、添加私有静态属性static #instance// 3、添加静态方法static getInstance(){// 4、判断实例是否存在if(!this.#instance){// 5、实例不存在&#xff0c;创建实例this.#instance new Single…

rust项目组织结构和集成测试举例

概述 在学习rust的过程中&#xff0c;当项目结构略微复杂的时候&#xff0c;写集成测试的时候发现总是不能引用项目中的代码&#xff0c;导致编写测试用例失败。查阅了教程&#xff0c;一般举例都很简单。查阅了谷歌和百度以及ai&#xff0c;也没有找到满意的答案。这里记录一…

Spring Boot 接入 Redis

Spring Boot 接入 Redis 简介 Redis 是一种访问速度非常快的内存数据结构存储&#xff0c;用作数据库、缓存、消息代理和流引擎。提供 strings、hashes、lists、sets 等数据结构。可以解决会话缓存、消息队列、分布式锁、定期将数据集存储到硬盘等功能。 通过 Redis 设计实现…

win11 安全中心打开黑屏\白屏\打不开有效解决

文章目录 问题和解决思路解决方法 问题和解决思路 问题&#xff1a;在重装和或者初次安装系统后&#xff0c;win11安全中心无法成功启动解决思路&#xff1a;直接重装安全中心&#xff0c;解决问题&#xff08;作者尝试了修复和重置的功能–无效&#xff09;视频教程参考WIN11…

攻防世界:mfw[WriteUP]

根据题目提示考虑是git库泄露 这里在地址栏后加.git也可以验证是git库泄露 使用GitHack工具对git库进行恢复重建 在templates目录下存在flag.php文件&#xff0c;但里面并没有flag 有内容的只有主目录下的index.php index.php源码&#xff1a; <?phpif (isset($_GET[page…

Photoshop 2024 中文---专业图像处理软件的又一次飞跃

Photoshop 2024是一款功能强大的图像处理软件&#xff0c;广泛应用于创意设计和图像处理领域。它提供了丰富的绘画和编辑工具&#xff0c;包括画笔、铅笔、颜色替换、混合器画笔等&#xff0c;使用户能够轻松进行图片编辑、合成、校色、抠图等操作&#xff0c;实现各种视觉效果…

Nature正刊重磅!热带雨林正接近临界温度阈值:气候变化可能会使热带森林太热而无法进行光合作用

2023年8月23日&#xff0c;美国北亚利桑那大学生态信息学Doughty, Christopher E. 副教授及其研究组人员在国际知名学术期刊《Nature》发表了一项题为“Tropical forests are approaching critical temperature thresholds”的研究。提出了热带雨林正接近临界温度阈值的新见解。…

vivado 有关 SVF 链的操作

按正确顺序创建反映所有器件及其配置存储器的 SVF 链之后 &#xff0c; 即可开始向 SVF 链中的器件添加编程操作。 例如&#xff0c; 您可右键单击链中的赛灵思 a200t 器件 &#xff0c; 然后选择“添加器件编程操作 (Add Program Device Operation) ”对话 框&#xff0c; …

数据导出实践:Spring Boot实现高效的千万数据导出

当数据量达到千万级别时&#xff0c;传统的导出方式往往效率低下&#xff0c;甚至可能导致系统崩溃。 数据导出的挑战 在实现千万数据导出功能时&#xff0c;常常会面临以下挑战&#xff1a; 内存占用过高&#xff1a;传统的导出方式往往需要将所有数据加载到内存中&#xff0…

【airtest】自动化入门教程(四)Poco元素定位

目录 一、基础操作 1、通过属性名等方式 2、通过属性组合 3、子节点方式 4、子节点加属性组合方式 5、孙节点offspring 6、兄弟节点sibling 7、父节点parent 8、正则表达式 9、直到某个元素出现 10、直到某个元素消失 二、通过局部坐标定位 1、使用局部坐标系的cli…

这下 package.json 里面的字段就清楚了

npm package.json 文件的详细说明。 Version:9.8.1 本文档包含了关于 package.json 文件中所需内容的所有信息。它必须是有效的 JSON 格式&#xff0c;而不仅仅是 JavaScript 对象字面量。 1. name 如果您计划发布您的包&#xff0c;那么 package.json 文件中最重要的字段是 n…

美食分享|基于Springboot和vue的地方美食分享网站系统设计与实现(源码+数据库+文档)

地方美食分享网站系统 目录 基于Springboot和vue的地方美食分享网站系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台&#xff1a; 2、后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介…