【Docker】一文趣谈Docker

2024-03-17 20:52
文章标签 docker 一文 趣谈

本文主要是介绍【Docker】一文趣谈Docker,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

🏡浩泽学编程:个人主页

 🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》
              《RabbitMQ》《Spring》《SpringMVC》《项目实战》

🛸学无止境,不骄不躁,知行合一

文章目录

  • 前言
  • 一、Docker是什么
    • Docker历史
  • 二、Docker为什么会出现
  • 三、Docker能做什么
  • 总结


前言

学习一门技术首先就要了解这个技术的是做什么的,为什么会出现,才能更好的学习与理解。


一、Docker是什么

  • Docker是一个容器
  • 容器一词的英文是container,其实container还有集装箱的意思,集装箱绝对是很了不起的一项发明,大大降低了海洋贸易等运输成本。让我们来看看集装箱的好处:
    • 集装箱内物品之间相互隔离
    • 长期反复使用
    • 快速装载和卸载
    • 规格标准,在港口和船上都可以摆放,极大利用空间
  • Docker就如同一个集装箱,大家可以看到Docker的标志就是鲸鱼上背着集装箱。
    在这里插入图片描述

Docker历史

  • 2010年,几个搞IT的年轻人,就在美国成立了一家公司dotcloud做一些pass的云计算服务,就是一个关于Linux服务器有关的容器技术,他们将自己的技术(容器化技术)命名为Docker。
  • Docker刚诞生时没有让行业很关注,所以Docker就是不赚钱了,怎么办,要饿死了嘛,no no,创始人就决定将他开源(2013年),源代码公开出去。
  • 哪曾想,果然免费的最好用啊,越来越多人发现Docker的优点,火了!问:怎么算火?答:每个月都有版本更新。
  • Docker1.0发布(2014年4月9日)。
  • 问:为什么这么火。答:很轻巧。问:具体说说。答:别急,继续往下看。

二、Docker为什么会出现

模拟场景一:产品软件研发——windows开发服务器(Ubuntu/CentOs)上线

运维:小李过来,你这写的什么软件,怎么运行不了。
程序员小李:什么!我在我的电脑上明明可以运行!!!

对于运维和开发人员来说,这就是典型的开发上线两套环境,研发人员写好后,上线的环境又要重新去配置,毕竟windows和linux还是有区别的。环境配置十分麻烦,每个机器都要部署环境(如集群Redis、ES、Hadoop等)真是费时费力,打工人大喊真实住了,狠狠共情。

那么问题来了:发布一个项目(jar+redis+MySQL+jdk+ES等等)能不能带上环境进行打包?

这不,Docker来了,新技术的出现就是有问题要解决。

对比与类比

  • 传统:
    • 开发人员windows开发jar,运维来发布到Linux。
    • java——apk——发布(应用商店)——张三使用apk包安装即可用。
  • 有了Docker:
    • 开发打包部署上线,一套流程全搞定。
    • java——jar(环境)——打包项目带上环境(镜像)——(Docker仓库:商店)——下载发布的镜像直接运行。

模拟场景二:水果,肉类一起运输

问:一个船一起运输,串味怎么办?
答:使用集装箱,把水果放一个集装箱,肉类放一个,放在船上直接运走。

同样Docker就是一种集装箱技术,打包装箱,每个箱子都是互相隔离的,所以一个Docker容器出现问题也不要怕其他的容器会受到影响。
在这里插入图片描述

VMware为例

VMware大家应该很熟悉,虚拟机技术。我们经常在虚拟机装系统(如Ubuntu)每个镜像就是一个模仿真实操作系统,所以一个镜像就要一二十个G,多装几个的话,内存吃不消啊。而现在有了Docker,一个系统内可以装入多个容器,很小的空间也能压榨出来作为一个集装箱,甚至现在能装入十几个容器等。

  • 虚拟机:在window中装一个Vmware,通过这个软件我们可以虚拟出来一台或者多台电脑!(很笨重)
  • 虚拟机也是属于虚拟化技术,Docker容器技术,也是一种虚拟化技术!
  • vmware:隔离,需要开启多个虚拟机!linux centos原生镜像(一个电脑!)需要几个G内存空间,开启需要几分钟!
  • docker:隔离,镜像(最核心的环境4m内存)十分的小巧,运行镜像就可以了!小巧!几个M或KB的内存空间,秒级启动!

三、Docker能做什么

讲到这里,大家应该了解了,我们做一下总结。

之前的虚拟机技术

  • 资源占用十分多
  • 冗余步骤多
  • 启动很慢!

容器化技术

  • 容器化技术不是模拟的一个完整的操作系统
  • 比较Docker和虚拟机技术的不同:
    • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
    • 容器内的应用直接运行在宿主机的内核中,容器是没有自己的内核的也没有虚拟我们的硬件,所以就轻便了。
    • 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。

开发和运维

  • 应用更快速的交付和部署
    • 传统:一堆帮助文档,安装程序!
    • Docker:打包镜像发布测试,一键运行!
  • 更便捷的升级和扩缩容
    • 使用了Docker之后,我们部署应用就和搭积木一样!
    • 项目打包为一个镜像,扩展服务器A!服务器B!
  • 更简单的系统运维
    • 在容器化之后,我们的开发,测试环境都是高度一致的。
  • 更高效的计算资源利用
    • Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例!服务器的性能可以被压榨到极致。

总结

以上就是对Docker的概述。

这篇关于【Docker】一文趣谈Docker的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/820129

相关文章

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

一文带你搞懂Nginx中的配置文件

《一文带你搞懂Nginx中的配置文件》Nginx(发音为“engine-x”)是一款高性能的Web服务器、反向代理服务器和负载均衡器,广泛应用于全球各类网站和应用中,下面就跟随小编一起来了解下如何... 目录摘要一、Nginx 配置文件结构概述二、全局配置(Global Configuration)1. w

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4