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 安装目录,证明卸载成功 。

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

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

相关文章

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

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

电商系列之风控安全

> 插&#xff1a;AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

【Spring进阶系列丨第七篇】Spring框架新注解分类及详解

文章目录 一、Spring新注解1.1、Configuration注解1.1.1、定义一个类1.1.2、使用Configuration注解修饰类1.1.3、作用 1.2、Bean注解1.2.1、定义bean1.2.2、在主配置类中注册bean1.2.3、测试容器中是否有该bean1.2.4、注册bean的同时可以指定bean名称1.2.5、补充内容1.2.5.1、案…

JAVA IO流学习

File类&#xff1a; File类是java.io包中很重要的一个类 File类的对象可以代表一个文件或者目录&#xff0c;可以修改文件大小、文件最后修改日期、文件名等 File对象不能操作文件的具体数据&#xff0c;即不能对文件进行读和写的操作 File的构造方法&#xff1a; File&…

什么时候外部依赖接口慢拖死应用?

A应用调用B应用&#xff0c;当B应用的接口响应耗时平均都在3000ms的时&#xff0c;如果当前A调用B的请求数达300/s 那么在3s内A应用在途的请求数 300 * 3 900 &#xff0c;按照servlet原理一个http的请求需要一个线程提供服务&#xff0c;即需要900个线程提供服务&#xff0c…

政安晨【AIGC实践】(一):在Kaggle上部署使用Stable Diffusion

目录 简述 开始 配置 执行 安装完毕&#xff0c;一键运行 结果展示 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 人工智能数字虚拟世界实践 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提…

MySQL中的redo log 和 undo log

undo log和redo log 先引入两个概念&#xff1a; 当我们做了一些操作 (update/delete/insert)&#xff0c;提交事务后要操作MySql中的数据。 为了能够提升性能&#xff0c;引入了两块区域&#xff1a;内存结构和磁盘结构。 磁盘结构&#xff1a; 主要存储的就是数据页&#x…

【C语言基础】:文件操作详解(前篇:准备知识)

文章目录 一、什么是文件以及文件的分类1.1 程序文件1.2 数据文件1.3 文件名 二、文本文件和二进制文件2.1 数据在文件中的存储 三、文件的打开和关闭3.1 流和标准流3.1.1 流3.1.2 标准流 3.3 文件指针3.5 文件的打开和关闭 一、什么是文件以及文件的分类 文件是指存储在计算机…

编程新手必看,学习python中字符串数据类型内容(8)

1、 Python3 字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号( ’ 或 " )来创建字符串。 创建字符串很简单&#xff0c;只要为变量分配一个值即可。例如&#xff1a; var1 Hello World! var2 "Runoob"Python 访问字符串中的值 Python 不支持单…

Linux(centos7)部署spark

Spark部署模式主要有4种&#xff1a;Local模式&#xff08;单机模式&#xff09;、Standalone模式&#xff08;使用Spark自带的简单集群管理器&#xff09;、Spark On Yarn模式&#xff08;使用YARN作为集群管理器&#xff09;和Spark On Mesos模式&#xff08;使用Mesos作为集…

机器学习模型——关联规则

目录 关联规则 - 基本概念 关联规则的挖掘步骤: Apriori算法 Apriori算法简介&#xff1a; Apriori算法举例&#xff1a; Apriori算法优缺点&#xff1a; Apriori算法应用 FP-growth算法&#xff1a; FP-growth算法简介&#xff1a; FP-growth的数据结构&#xff1a; …

AI帮助写代码:在python中,如何替换字符串中指定位置的字符

用python编写一段代码&#xff0c;在下面的字符串中:#1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28#29&#xff0c;从第2个‘#开始&#xff0c;每个#前面加一个字符串 or ‘。 # 原始字符串 s "#1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#…

多线程学习-线程池

目录 1.线程池的作用 2.线程池的实现 3.自定义创建线程池 1.线程池的作用 当我们使用Thread的实现类来创建线程并调用start运行线程时&#xff0c;这个线程只会使用一次并且执行的任务是固定的&#xff0c;等run方法中的代码执行完之后这个线程就会变成垃圾等待被回收掉。如…

2024最新GPT4.0使用教程:GPTs,AI绘画,AI换脸,AI绘画,文档分析一站式解决

一、前言 ChatGPT3.5、GPT4.0、相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而&#xff0c;GPT-4对普通用户来说都是需要额外付费才可以…

超强AI辅助工具:BitoCLI的简单使用

今天要推荐一个爱不释手的好东西–Bito; 从事相关工作的人大概率在自己的代码编辑器中已经用上了Bito的插件版本&#xff0c;所以这里主要介绍的是一个适合与所有人且方便快捷的Bito CLI&#xff0c;也就是Bito的命令行版本。 BitoCLI 从官方介绍来看&#xff0c;这是一款为 …

卸载不留痕,App Cleaner Uninstaller助你打造清爽Mac

在数字时代&#xff0c;我们的Mac设备上积累了大量的应用程序&#xff0c;其中一些可能不再需要或不再使用。随着时间的推移&#xff0c;这些不再使用的应用程序可能会占用宝贵的存储空间&#xff0c;影响设备的性能。为了解决这个问题&#xff0c;App Cleaner & Uninstall…

【C+ +初阶】前言篇章---C+ +的广袤

目录 1.C语言到C的过渡 2.C的发展历程 2.1C语言的诞生 2.2 c的历史版本 3.c 的地位 4. c的应用场景 4.1. 操作系统以及大型系统软件开发 所有操作系统几乎都是C/C写的 4.2. 服务器端开发 后台开发&#xff1a; 4.3. 游戏开发 4.4. 嵌入式 4.5. 数字图像处理 4.6. 人工智能 4.7.…

初始Java篇(JavaSE基础语法)(6)(继承和多态)(上)

Java学习篇 个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录 继承篇 为什么需要继承&#xff1f; 继承概念 继承的语法 父类成员访问 super关键字 子类构造方法 super和this的比较 再谈…

深度学习十大算法之深度Q网络(DQN)

一、简介 深度Q网络&#xff08;DQN&#xff09;是一种结合了深度学习和强化学习的算法&#xff0c;它在近年来成为了人工智能领域的一个热点。DQN首次被引入是在2013年&#xff0c;由DeepMind的研究人员开发。它标志着深度学习技术在解决高维度决策问题上的一大突破。 DQN的…

Python可视化之pandas

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.解决坐标轴刻度负号乱码2.解决中文乱码问题3.折线图Series.plot()&DataFrame.plot()4.条形图5.箱线图6.区域面积图&#xff08;堆积折线图&#xff09;7.散点…