Docker基础篇之Docker入门介绍

文章目录

    • 1. 为什么要有Docker?
    • 2. Docker简介
    • 3. 容器和虚拟机的区别
    • 4. Docker下载

1. 为什么要有Docker?

在这里插入图片描述
假设我们现在正在开发一个项目,使用的是一台笔记本电脑而且开发环境具有特定的配置,其他开发人员身处的环境配置也各不相同。现在你正在开发的应用依赖于某些配置文件。此外,您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。那么,你要如何保证应用能够在这些环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复?答案就是使用容器,Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案—系统平滑移植,容器虚拟化技术。环境配置相当麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始的环境一模一样地复制过来。开发人员可以利用Docker可以消除协作编码时在我的机器上可以正常工作的问题。
在这里插入图片描述
传统上认为,软件编码开发/测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码等。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文档,让运维团队得以部署应用程序,开发需要清楚的告诉运维团队,用的全部配置文件+所有软件环境,不过即便如此,仍然常常发生部署失败的情况。Docker的出现使得Docker能够打破过去[程序即应用]的观念。透过镜像将作业系统核心除外,运作应用程序所需要的系统环境,由下而上打包,达到应用程序跨平台间的无缝接轨运作。

2. Docker简介

一次镜像,处处运行

Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any APP,AnyWhere”,也就是用过对应用组件的封装、分发、部署、运行等生命周期的管理,使得用户的APP及其运行环境能够做到一次镜像、处处运行。Linux容器技术的出现解决了这样的一个问题,尔Docker就是在它的基础傻上发展过来的,将应用打成镜像,通过镜像称为运行在Docker容器上的实例,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
在这里插入图片描述

解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术

3. 容器和虚拟机的区别

虚拟机就是带环境安装的一种解决方案,它可以在一种操作系统里面运行另一种操作系统,应用程序对此毫无感知,因此虚拟机看上去和真实系统一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要就删掉,对其他部分毫无影响,这类虚拟机完美的运行了另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变。
在这里插入图片描述
传统的虚拟机技术有下面三个短板:

  • 资源占用多
  • 冗余步骤多
  • 启动慢

由于虚拟机存在的一些缺点,Linux发展出了另一种虚拟化技术:Linux容器(LXC),Linux容器是与系统其他部分分隔开的一系列进程,从另一个镜像运行,并由镜像提供支持进程所需要的全部文件,容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的过程中,它都具有可移植性和一致性。Linux容器不是模拟一个完整的操作系统而是对进程进行隔离,有了容器,就可以将软件所需的所有资源打包到一个隔离的容器中。容器和虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因而变得高效轻量并保证部署在任何环境中的软件都能始终如一的运行。
在这里插入图片描述
最后做一个对比:

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行应用进程
  • 容器内的应用进程直接运行于宿主机的内核,容器没有自己的内核且也没有进行硬件虚拟。因此容器比传统虚拟机更加方便
  • 每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源

4. Docker下载

docker官网:http://www.docker.com/
docker Hub官网:http://hub.docker.com/

docker官网介绍了docker安装以及使用的教程,docker Hub官网就是docker镜像容器的仓库。

Docker并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境,Docker实质上是在已经运行的Linux下制造一个隔离的文件环境,因此它执行的效率几乎等同于所部署的Linux主机。因此,Docker必须部署在Linux内核系统上,如果其他系统想部署Docker就必须安装一个虚拟的Linux环境。

window上部署Docker的方法就是先安装一个虚拟机,并在安装的Linux系统的虚拟机汇总运行Docker

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

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

相关文章

ZeroTier+Nomachine远程

目录 前述:一、Zero二、Nomachine 前述: 需要远程控制时,服务端与客户端都必须下载这两个软件!远程主机(被控制的主机)和远程客户端(控制主机的用户)都必须具有网络连接,…

地铁判官:啥时候B端系统界面,也出个“判官”,讲好不准打脸。

小编所在的城市——山东青岛,出了个地铁判官,我看了视频,哈哈哈,俗世的判断标准就是那么简单直接,而放到B端系统那就难说啦。 如何判断B端系统的优劣,各位看官,各抒己见吧。 判断B端系统界面的…

如何深入理解、应用及扩展 Twemproxy?no.15

Twemproxy 架构及应用 Twemproxy 是 Twitter 的一个开源架构,它是一个分片资源访问的代理组件。如下图所示,它可以封装资源池的分布及 hash 规则,解决后端部分节点异常后的探测和重连问题,让 client 访问尽可能简单,同…

揭秘:如何使用Python统计女友生日还剩几天?

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:为何需要统计生日天数? 二、需求分析与准备 1. 用户输入格…

为什么我们会固执己见、为什么我们总认为自己是对的?

人为什么固执己见,是其所是,而非其所非?我们要有什么样的思维模式才能使自己有良好的判断力,才能作出恰当的预测和良好的决定呢?作者Julia Galef对TED发表演讲时提出自己的观点。以下是演讲的文字实录。 我想让你们想象…

spring boot 之 结合aop整合日志

AOP 该切面仅用于请求日志记录&#xff0c;若有其他需求&#xff0c;在此基础上扩展即可&#xff0c;不多逼逼&#xff0c;直接上代码。 引入切面依赖 <!-- 切面 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>sp…

如果查看svn的账号和密码

一、找到svn存放目录&#xff08;本地默认存放SVN用户信息的目录为&#xff1a;C:\Users\Administrator\AppData\Roaming\Subversion\auth\svn.simple&#xff09;每个人的电脑环境不一样&#xff0c;因人而异。 如果找不到直接搜索svn.simple 二、下载密码查看工具 链接: 百…

面试被问到不懂的东西,是直接说不懂还是坚持狡辩一下?

大家好&#xff0c;我是瑶琴呀。 面试被问到不懂的东西&#xff0c;是直接说不懂还是坚持狡辩一下&#xff1f;这个问题可以转变一下&#xff0c;如果你顺利拿到 offer&#xff0c;公司安排的工作跟你之前的技术和经验不匹配&#xff0c;你还愿意干下去吗&#xff1f; 转变一…

条款7:千万不要重载,||和,操作符

&&和|| 和C一样&#xff0c;C对于“真假值表达式”采用所谓的“骤死式”评估方式。意思是一旦该表达式的真假值确定&#xff0c;即使表达式中还有部分尚未检验&#xff0c;整个评估工作仍告结束。 举个例子&#xff0c;在下面情况中: char *p; ... if ((p!0)&&a…

单片机超声波测距+WTD588D语音播报的设计

第一章 绪论 1.1 课题设计目的及意义 1.1.1设计的目的 随着科学技术的快速发展&#xff0c;超声波在测距中的应用越来越广。但就目前的急速水平来说&#xff0c;人们可以具体利用的测距技术还十分有限&#xff0c;因此&#xff0c;这是一个正在蓬勃发展而又有无限前景的技术…

基于51单片机多功能太阳能充电器设计

1 绪论1.1 本课题研究背景及现状 当代社会随着一些不可再生资源如煤炭&#xff0c;石油等日益减少&#xff0c;使得各国社会经济越来越受能源问题的约制&#xff0c;因此许多国家开始逐渐的实行“阳光计划”&#xff0c;开发洁净的能源如太阳能&#xff0c;用以成为本国经济发…

C++多态总结与原理、菱形继承问题

文章目录 多态什么是多态 多态的定义及实现多态的构成条件虚函数 虚函数的重写虚函数重写的两个例外协变 重写C11 override 和 final重载、覆盖(重写)、隐藏(重定义)的对比 抽象类概念接口继承和实现继承小结 多态的原理虚函数表多态的原理动态绑定与静态绑定 单继承和多继承关…

数据结构之二叉树的超详细讲解(2)--(堆的概念和结构的实现,堆排序和堆排序的应用)

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 数据结构之二叉树的超详细讲解(2)--(堆的概念和结构的实现,堆排序和堆排序的应用) 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记…

IC解析之TPS1HB08-Q1

目录 1.主要参数2. 接口定义3. 工作原理分析高低边驱动的作用TPS1HB08-Q1架构TPS1HB08-Q1典型应用电路参数设置 4.总结 1.主要参数 2. 接口定义 其中&#xff0c;不同的IC版本在故障反馈引脚有所差异&#xff0c;A/B版本则为ILIM功能&#xff0c;F版本则为FLT功能&#xff0c;两…

GpuMall智算云:QwenLM/Qwen1.5/Qwen1.5-7B-Chat

Qwen 是阿里巴巴集团 Qwen 团队的大型语言模型和大型多模态模型系列&#xff0c;现在大型语言模型已经升级到 Qwen1.5 版本。 GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall,面向AI开发者的GPU云平台 无论是语言模型还是多模态模型&#xff0c;都在大规模的多语言和多模…

【Python】 从Python列表中获取唯一值

基本原理 在Python中&#xff0c;列表是一种非常灵活的数据结构&#xff0c;它允许存储不同类型的元素。然而&#xff0c;有时我们可能需要从列表中提取唯一的值&#xff0c;即去除重复的元素。这在处理数据集或进行数据分析时尤其有用。Python提供了几种方法来实现这一目标。…

甘肃省大学生志愿服务西部计划报名流程及免冠证件照处理

在甘肃省&#xff0c;大学生志愿服务西部计划是一项旨在鼓励和引导大学生参与西部地区社会服务与发展的重要项目。随着2024年报名季的到来&#xff0c;许多有志青年正准备投身这一有意义的事业。本文将详细介绍报名流程&#xff0c;并提供免冠证件照的处理技巧&#xff0c;帮助…

人工智能——什么是摩尔定律以及它如何影响人工智能?

1. 概述 摩尔定律是现代技术发展中一个至关重要的基石。它预言了微芯片上晶体管的数量大约每两年翻一番&#xff0c;这一现象导致了计算能力的指数级增长。在过去的50多年里&#xff0c;这一定律一直是推动技术进步的强大动力&#xff0c;并且对人工智能领域产生了深远的影响。…

市面上前 11 名的 Android 数据恢复软件

Android数据恢复软件是恢复无意中删除的文件或文件夹的必要工具。该软件还将帮助您恢复丢失或损坏的信息。本文介绍提供数据备份和磁盘克隆选项的程序&#xff0c;这些选项有助于在Android设备上恢复文件的过程。 如果您正在寻找一种有效的方法来恢复图像&#xff0c;文档&…

宝塔Nginx设置图片访问跨域

宝塔Nginx设置图片访问跨域 针对某一个站点设置 找到对应的站点点击 “设置” 增加对应header设置 代码&#xff1a; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${#允许跨域add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Headers X-Requeste…