Docker的简介及安装

Docker 是什么

        Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。诞生于2013年,最 初的发起者是dotCloud公司,后来改名为Docker Inc,专注于Docker 相关技术和产品的开发。Docker 项目目前已经加入了Linux基金会,全部开源代码均在https://github,com/docker上进行相关维护 官网地址为https://www.docker,com/,有相关文档可以参考。现在Docker与 OpenStack同为最受 欢迎的云计算开源项目, Docker 的Logo设计为蓝色鲸鱼,拖着许多集装箱。如图所示,鲸鱼可以看作宿主机,而集装箱可以理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。正如 Docker 的设计宗旨一 样:Build, Ship and Run Any App, Anywhere,即通过对应用组件的封装,发布、部署,运行等生命 周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应 用,也可以是一套服务,甚至是一个完整的操作系统。

 Docker 和虚拟机的区别

        作为一种轻量级的虚拟化方式,Docker与传统虚拟机相比具有显著的优势, Docker容器很快,启动和停止可以在秒级实现,比传统虚拟机要快很多;Docker核心解决的问 题是利用容器来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源, 所以 Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,从而在保证应用性能的同 时,减小系统开销,使得在一台主机上同时运行数千个Docker容器成为可能;Docker操作方便,还 可以通过 Dockerfile 配置文件支持灵活的自动化创建和部署。

        下表对使用 Docker容器技术与传统 虚拟化技术的特性进行了比较。

        Docker之所以拥有众多优势,与操作系统虚拟化自身的特点是分不开的。传统虚拟机需要有额 外的虚拟机管理程序和虚拟机操作系统层,而Docker容器是直接在操作系统层面之上实现的虚拟化

Docker 的使用场景

         现在开发者需要能方便地创建运行在云平台上的应用,必须要脱离底层的硬件,同时还需要任 何时间地点可获取这些资源,这正是Docker所能提供的。Docker的容 器 技术可以在一台主机上轻松 为任何应用创建一个轻量级的,可移植的,自给自足的容器。通过这 种 容 器打包应用程序,意味着 简化了重新部署、调试这些琐碎的重复工作,极大地提高了工作效率。例如,服务器从腾讯云迁移 到阿里云,如果采用Docker容器技术,迁移只需要在新的服务器上启动需要的容器即可。

Docker 的核心概念及安装

1.镜像

        Docker的镜像(lmage)是创建容器的基础,类似虚拟机的快照,可以理解为是一个面向Docker 容器引擎的只读模板。比如,一个镜像可以是一个完整的CentOS操作系统环境,称为一个CentOS 镜像,可以是一个安装了MySQL的应用程序,称为一个MySQL镜像,等等。

         Docker提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经做好的应用镜像来直接使用。

2.容器

        Docker 的容器(Container)是从镜像创建的运行实例。它可以被启动,停止和删除。所创建的每 一个容器都是相互隔离、互不可见,可以保证安全性的平台。可以把容器看作一个简易版的Linux环 境,Docker利用容器来运行和隔离应用。

3.仓库

        Docker仓库(Repository)是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push 命令将它上传到公有仓库(Public)或者私有仓库(Private),这样一来当下次要在另外一台机器上使 用这个镜像时,只需要从仓库上拉取下来就可以了。

        仓库注册服务器(Registry)是存放仓库的地方,其中包含了多个仓库,每个仓库集中存放某一 类镜像,并且使用不同的标签(Tag)来区分它们,目前最大的公共仓库是Docker Hub,存放了数量 庞大的镜像供用户下载使用。

4.安装 Docker

        Docker支持在主流的操作系统平台上进行使用,包括 Windows系统、Llinux系统及MacOS系统 等。目前最新的RedHat RHEL.CentOS 及 Ubuntu系统官方软件源中都已经默认自带了 Docker包,可 直接安装使用,也可以用 Docker自己的YUM源进行配置。

        CentOS 系统下安装Docker可以有两种方式:一种是使用 cul获得Docker的安装脚本进行安装, 另一种是使用YUM仓库来安装Docker。需要注意的是,目前Docker 只能支持64位系统。

(1)安装 Docker

[root@lgc ~]# wget https://download.docker.com/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo   //定义yum仓库 Docker官方源

[root@lgc ~]# yum -y install docker-ce  //用自带的yum源安装

(2)安装完成启动 Docker 并设置开机自动启动

[root@lgc ~]# systemctl start docker.service
[root@lgc ~]# systemctl enable docker.service

        安装好的Docker有两个程序:Docker服务端和 Docker客户端。其中Docker服务端是一个服务进 程,管理着所有的容器。Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker 的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。

(3)通过检查Docker版本可以查看Docker服务

[root@lgc ~]# docker version

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

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

相关文章

【目标检测】YOLOv2 网络结构(darknet-19 作为 backbone)

上一篇文章主要是写了一些 YOLOv1 的原版网络结构,这篇文章一样,目标是还原论文中原版的 YOLOv2 的网络结构,而不是后续各种魔改的版本。 YOLOv2 和 YOLOv1 不一样,开始使用 Darknet-19 来作为 backbone 了。论文中给出了 Darkne…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:FolderStack)

FolderStack继承于Stack(层叠布局)控件,新增了折叠屏悬停能力,通过识别upperItems自动避让折叠屏折痕区后移到上半屏 说明: 该组件从API Version 11开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件…

数据在内存的存储

整数在内存中的存储 我们来回顾一下,整数在计算机是以补码的形式进行存储的,整数分为正整数和负整数,正整数的原码、反码和补码是一样的,负整数的原码、反码和补码略有不同(反码是原码除符号位,其他位按位取…

【九】【算法分析与设计】双指针(3)

15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…

SpringBoot(数据库操作 + druid监控功能)

文章目录 1.JDBC HikariDataSource(SpringBoot2默认数据源)1.数据库表设计2.引入依赖 pom.xml3.配置数据源参数 application.yml4.编写一个bean,映射表5.编写测试类来完成测试1.引入依赖 pom.xml2.使用JdbcTemplate进行测试3.成功&#xff0…

STM32信息安全 1.2 课程架构介绍:芯片生命周期管理与安全调试

STM32信息安全 1.2 课程架构介绍:STM32H5 芯片生命周期管理与安全调试 下面开始学习课程的第二节,简单介绍下STM32H5芯片的生命周期和安全调试,具体课程大家可以观看STM32官方录制的课程,链接:1.2. 课程架构介绍&…

01背包问题详解

01背包问题是动态规划问题的子背包问题&#xff0c;算是蓝桥杯以及CSP较为常考的一种题型。 这种问题是有一个板子的&#xff0c;非常简单 #include <bits/stdc.h> using namespace std;int k[200],v[200],dp[130][130]; int main() {int t,m;cin>>t>>m;fo…

【鸿蒙HarmonyOS开发笔记】常用组件介绍篇 —— Toggle切换按钮组件

概述 Toggle为切换按钮组件&#xff0c;一般用于两种状态之间的切换&#xff0c;例如下图中的蓝牙开关。 参数 Toggle组件的参数定义如下 Toggle(options: { type: ToggleType, isOn?: boolean })● type type属性用于设置Toggle组件的类型&#xff0c;可通过ToggleType枚举…

【MIT 6.S081】2020, 实验记录(9),Lab: file system

目录 Task 1&#xff1a;Large filesTask 2&#xff1a;Symbolic links2.1 增加一个系统调用 symlink2.2 新增文件类型2.3 新增 NOFOLLOW 标志位2.4 实现 sys_symlink 系统调用2.5 修改 sys_open 函数2.6 测试 Task 1&#xff1a;Large files 现在的 xv6 系统中&#xff0c;一…

基础:TCP三次握手做了什么,为什么要握手?

1. TCP 三次握手在做些什么 1. 第一次握手 &#xff1a; 1&#xff09;握手作用&#xff1a;客户端发出建立连接请求。 2&#xff09;数据处理&#xff1a;客户端发送连接请求报文段&#xff0c;将SYN位置为1&#xff0c;Sequence Number为x;然后&#xff0c;客户端进入SYN_S…

Swagger Array 使用指南:详解与实践

Swagger 允许开发者定义 API 的路径、请求参数、响应和其他相关信息&#xff0c;以便生成可读性较高的文档和自动生成客户端代码。而 Array &#xff08;数组&#xff09;是一种常见的数据结构&#xff0c;用于存储和组织多个相同类型的数据元素。数组可以有不同的维度和大小&a…

几个精品声音模型

AI技术提取某位歌手的音色&#xff0c;再用其替换另一位歌手音色的方式&#xff0c;可以实现接近歌手本人翻唱的逼真效果。无需学习其他伪音技巧&#xff0c;即可实现实时男女声音互换等等。 使用 RVC 及模型工具&#xff0c;可以实现以下几个功能&#xff1a; 音乐干声分离&…

【兔子机器人】实现从初始状态到站立

一、遥想星空up主的方法 由于我有卡位结构&#xff0c;无法做到劈腿&#xff0c;而且底盘也不一样&#xff0c;无法使用此方法 但是其代码思想是可以借鉴的。 参考视频&#xff1a; 【【开源啦&#xff01;】无刷轮腿平衡机器人】 【精准空降到 01:16】 https://www.bilibili…

uniapp 对video视频组件嵌套倍速按钮

这次接了需求是要求有倍速功能&#xff0c;去看了文档发现并没有倍速按钮的属性&#xff0c;想着手写一个吧 可最后发现原生层级太高&#xff0c;无论怎么样都迭不上去&#xff0c;就只能去找插件看看咯 找了好多插件发现都不可用&#xff0c;因为我这是app端&#xff0c;有些视…

旅游管理系统|基于SpringBoot+ Mysql+Java+Tomcat技术的旅游管理系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 用户功能 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 …

深度学习——数据预处理

一、数据预处理 为了能用深度学习来解决现实世界的问题&#xff0c;我们经常从预处理原始数据开始&#xff0c; 而不是从那些准备好的张量格式数据开始。 在Python中常用的数据分析工具中&#xff0c;我们通常使用pandas软件包。 像庞大的Python生态系统中的许多其他扩展包一样…

【JVM篇】类的生命周期

文章目录 &#x1f354;类的生命周期概述⭐加载⭐连接⭐初始化⭐类的卸载 &#x1f354;类的生命周期概述 Java类的生命周期包括加载&#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff08;R…

TrueNAS怎么设置中文,最新2024版本安装详细说明

首先我们做好安装前的准备工作 1&#xff0c;ISO镜像安装包 2&#xff0c;虚拟机&#xff08;建议使用ESXI虚拟机环境&#xff09; 如果是物理机安装&#xff0c;建议先给底层安装虚拟机系统esxi&#xff0c;再在上面安装方便以后的管理&#xff0c;如果你想物理机直接安装&a…

【Redis】缓存穿透

问题发生背景&#xff1a;客户端请求的数据再缓存中和数据库中都不存在。 导致的问题&#xff1a;缓存永远不会生效&#xff0c;这些请求都会去请求数据库—导致数据库压力增大。 解决方案&#xff1a; 1.缓存空对象 在Redis中缓存空对象&#xff0c;告诉客户端数据库中没有该值…

zookeeper快速入门五:用zookeeper实现服务注册与发现中心

系列&#xff1a; zookeeper快速入门一&#xff1a;zookeeper安装与启动-CSDN博客 zookeeper快速入门二&#xff1a;zookeeper基本概念-CSDN博客 zookeeper快速入门三&#xff1a;zookeeper的基本操作 zookeeper快速入门四&#xff1a;在java客户端中操作zookeeper-CSDN博客…