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

news2025/1/19 12:56:48

目录

一、什么是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.coloradmin.cn/o/1572024.html

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

相关文章

移动端适配方案总结之vw

1、vw/vh是什么&#xff1f; vw是&#xff1a;viewport width 视口宽度单位 vh是&#xff1a; viewport height 视口高度单位 实际开发中我们基本用vw&#xff1b; 2.相对视口的尺寸计算结果 1vw 1/100视口宽度 1vh 1/100视口高度 例如&#xff1a; 当前屏幕视口是 375像素…

聚类算法的先验基础知识

聚类算法的先验基础知识 1. 瑞利商2. 谱定理3. 联合概率4. 条件概率分布5. 边缘分布6. 贝叶斯定理7. 有向图8. 拉格朗日乘子定理 下一篇将介绍整理各种聚类算法&#xff0c;包括k-means&#xff0c;GMM(Guassian Mixture Models, 高斯混合)&#xff0c;EM(Expectation Maximiza…

如果真的要被优化了,你该如何提前应对与准备!

程序员35岁会失业吗&#xff1f; 35岁被认为是程序员职业生涯的分水岭&#xff0c;许多程序员开始担忧自己的职业发展是否会受到年龄的限制。随着科技的飞速发展&#xff0c;IT行业成为了变化最为迅速的领域之一。在这样的背景下&#xff0c;许多35岁左右的程序员开始担忧自己…

Android数据存储技术

一、文件存储 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical"android:layout_width"match_parent"android:layout_height"match_parent" ><EditTextandroid:id&qu…

【C++】c++11新特性(一)

目录 { }列表初始化 内置类型---对单值变量及数组的初始化 列表初始化时进行的类型转换 自定义类型---对类对象或结构的初始化 initializer_list 1. 定义接受 initializer_list 参数的构造函数 2. 在函数中使用 initializer_list 参数 3. 使用 initializer_list 与 vect…

C#将Console写至文件,且文件固定最大长度

参考文章 将C#的Console.Write同步到控制台和log文件输出 业务需求 在生产环境中&#xff0c;控制台窗口不便展示出来。 为了在生产环境中&#xff0c;完整记录控制台应用的输出&#xff0c;选择将其输出到文件中。 但是&#xff0c;一次性存储所有输出的话&#xff0c;文件会…

基于SSM+Jsp+Mysql的二手车交易网站

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

5G智慧地铁数字孪生可视化平台,推进铁路行业数字化转型

随着科技的快速发展&#xff0c;5G智慧地铁数字孪生可视化平台正逐渐成为铁路行业数字化转型的重要推动力。巨蟹数科数字孪生平台集成了5G通信技术、大数据分析、云计算和人工智能等先进技术&#xff0c;通过构建数字孪生模型&#xff0c;实现对地铁运营全过程的实时监控、预测…

【智能排班系统】基于SpringSecurity实现登录验证、权限验证

文章目录 SpringSecurity介绍sss-security实现依赖工具类Jwt工具JSON响应工具加密工具类 用户上下文用户信息实体类用户上下文 自定义重写自定义无权限的报错自定义密码加密自定义用户类 过滤器登录过滤器权限过滤器 Service登录Service 配置类说明登录验证权限验证IP流量限制 …

JDK安全剖析之安全处理入门

0.前言 Java 安全包括大量 API、工具以及常用安全算法、机制和协议的实现。Java 安全 API 涵盖了广泛的领域&#xff0c;包括加密、公钥基础设施、安全通信、身份验证和访问控制。Java 安全技术为开发人员提供了编写应用程序的全面安全框架&#xff0c;还为用户或管理员提供了…

蓝桥集训之斐波那契数列

蓝桥集训之斐波那契数列 核心思想&#xff1a;矩阵乘法 将原本O(n)的递推算法优化为O(log2n) 构造1x2矩阵f和2x2矩阵a 发现f(n1) f(n) * a 则f(n1) f(1) * an可以用快速幂优化 #include <iostream>#include <cstring>#include <algorithm>using na…

跨站请求伪造漏洞(CSRF)

什么是CSRF CSRF&#xff08;Cross-Site Request Forgery&#xff09;&#xff0c;也被称为 one-click attack 或者 session riding&#xff0c;即跨站请求伪造攻击。 漏洞原理 跨站请求伪造漏洞的原理主要是利用了网站对用户请求的验证不严谨。攻击者会在恶意网站中构造一个…

RAG知识分享

文章目录 博客详细讲解视频点击查看高清脑图 1.为什么要做RAG1.1. 解决幻觉问题1.1.1 直接输入问题1.1.2. 问题 相关知识 2. 什么是RAG2.1. 基本概念2.2. 基本RAG方法2.2.1. 知识预处理2.2.2. 知识检索2.2.3. 答案生成 3. RAG 与 Long Context3.1. Long Context3.2. RAG 与Lon…

你为什么选择程序员这个职业?

注意&#xff0c;今天的这篇文章&#xff0c;我只是对程序员这份工作所需要面对的问题挑选一些有意思的话题讲讲我的理解&#xff0c;并不是对程序员的职业规划进行分享。本文分为入行前和入行后两个部分&#xff0c;分别聊聊。 入行前 所谓入行前&#xff0c;其实就是指还是学…

力扣面试150: O(1) 时间插入、删除和获取随机元素 HashMap结合数组

Problem: 380. O(1) 时间插入、删除和获取随机元素 文章目录 思路复杂度Code 思路 &#x1f469;‍&#x1f3eb; 三叶题解 复杂度 时间复杂度: O ( 1 ) O(1) O(1) 空间复杂度: O ( n ) O(n) O(n) Code class RandomizedSet {static int[] nums new int[200_010];//存…

RabbitMQ小记

参考书籍&#xff1a;朱忠华的《RabbitMQ实战指南》 一、基础概念 1.Exchange 1.1 创建方法的参数&#xff0c;exchangeDeclare() exchange&#xff1a;交换器的名称type&#xff1a;交换器的类型durable&#xff1a;是否持久化&#xff0c;true代表持久化。&#xff08;持…

iperf图形化打流工具JPerf2.0使用教程(1):相关设置介绍

0 前言 iperf是一个很常用的网络性能测试工具&#xff0c;经常来进行打流测试&#xff0c;用来查看丢包率、抖动时间等网络通信情况&#xff0c;但它是使用命令行操作的&#xff0c;使用起来不太友好。本文介绍基于iperf的图形化操作工具JPerf2.0。 1 JPerf2.0的客户端和服务…

蓝桥杯速成5-AD/DA模数转换

一、原理图 上图可知该芯片使用的是iic时序&#xff0c;而不是51单片机的xpt2046时序&#xff0c;iic我们都很熟悉了吧 并且大赛还提供了我们iic底层驱动代码 左上角有AIN0-4四个转换输入通道&#xff0c;和AOUT一个输出通道&#xff0c;由控制字节选择 地址字节&#xff1a;0x…

Stable Diffusion本地部署教程

Stable Diffusion本地部署的步骤一般包括准备环境、下载Stable Diffusion模型和依赖库、配置运行参数等。下面是一个通用的教程&#xff0c;用以在计算机上本地部署Stable Diffusion。 准备环境 1. 确保硬件满足最低要求&#xff1a; - 一块NVIDIA GPU&#xff0c;至少4GB…

LLMOps快速入门,轻松开发部署大语言模型

大家好&#xff0c;如今我们能够与ChatGPT进行轻松互动&#xff1a;只需输入提示&#xff0c;按下回车&#xff0c;就能迅速得到回应。然而&#xff0c;这个无缝互动的底层&#xff0c;是一系列复杂而有序的自动执行步骤&#xff0c;即大型语言模型运营&#xff08;LLMOps&…