LaoCat带你认识容器与镜像(一)

准备更新一个容器与镜像相关的系列,从Docker到K8s的入门再到实际项目进阶应用,这里感谢好朋友泽鹏,是他让我结识容器与镜像;也感谢上家公司菲恩曼,是它给了我去学习、实践的机会;最后感谢翼哥,一位纯技术人,在曼给了我们很大的帮助和启发。

系列目录
LaoCat带你认识容器与镜像(二【一章】)
LaoCat带你认识容器与镜像(二【二章】)
LaoCat带你认识容器与镜像(二【三章】)
LaoCat带你认识容器与镜像(三【上】)
LaoCat带你认识容器与镜像(三【下】)
LaoCat带你认识容器与镜像(四【上】)
LaoCat带你认识容器与镜像(四【下】)
LaoCat带你认识容器与镜像(番外一【Harbor】)
LaoCat带你认识容器与镜像(实践篇一上)
LaoCat带你认识容器与镜像(实践篇一下)
LaoCat带你认识容器与镜像(实践篇二上)
LaoCat带你认识容器与镜像(实践篇二下)

本章内容

认识Docker、Docker的核心价值、Docker与虚拟机比较、Docker核心概念与安装配置。

一、认识Docker

Docker是基于Go语言实现的开源容器项目,于2013年年初诞生,官网Docker: Accelerated, Containerized Application Development

Docker通过对应用的封装、分发、部署、运行等生命周期进行管理,如Docker官网所示Develop faster. Run anywhere.(开发速度更快、到处运行),可以说Docker为应用的开发、运行和部署提供了“一站式”的实用解决方案。

Docker基于LXC,优化容器的使用体验,使用户无需关注底层的操作,可以更简单明了的操作和管理容器,Docker通过引入分层文件系统构建和高效的镜像机制,使得应用的迁移难度大幅降低,操作Docker容器就像操作应用自身一样简单。

我们可以将Docker理解为码头存放的“集装箱”,每个“集装箱”(容器)内运行着一个应用,不同“集装箱”(容器)相互隔离,“集装箱”(容器)之间也可以通过网络互相通信,当然你也可以把“集装箱”(容器)当做应用本身。

二、Docker的核心价值

传统部署一个Java项目(Mysql+Redis+Tomcat+JDK),首先需要在服务器上部署JDK、然后下载对应服务(指Mysql、Redis等)的二进制安装包,再安装其对应的依赖、然后安装服务本身,配置每个服务的参数,最后安装Tomcat,将项目本地打包,上传到服务器上,放入对应Tomcat运行目录,可以想象,步骤繁琐且不易维护,稍有一个步骤错误,就可能需要重新对一些服务进行二次安装、同时随着应用越来越多,事情会越来越难以处理,更加让人恶心的是,一旦需要对服务器进行迁移,上述所有的工作都需要再次执行一次或多次,这些繁琐无趣的“体力活”,极大的降低了工作效率,因为这些应用与服务都是直接运行在底层操作系统上,无法保证同一份应用在不同的环境中行为一致。

Dokcer提供容器来打包应用,解耦应用和运行平台,意味着上述的情景发生时,只需要在新的服务器上启动需要的容器就可以了,无论新旧服务器是否是同一类型的平台,这将降低很多风险、节省大量的宝贵时间,最让开发和运维人员开心的莫过于,一次创建和配置,之后可以在任意地方、任何时间让应用正常运行,而Docker就是解决该问题的一把好手。

  • Docker拥有更快的交付和部署。

使用Docker可以让开发人员快速的构建一套标准的开发环境,开发测试完成后,测试人员和运维人员完全可以使用该环境来快速上线保证无缝运行。Docker可以快速创建、删除容器,可以使项目实现快速迭代且大量节约部署时间。

  • 更高效的资源利用。

Docker容器的运行不需要额外的虚拟化管理程序的支持,内核级虚拟化可以实现更高的性能,同时对资源的额外需求很低。

  • 更好的迁移和拓展。

Docker容器几乎可以在任何平台上运行,包括物理机、虚拟机、公有云、私有云、自己的电脑等等,同时支持主流的操作系统发行版本。

  • 更简单的更新管理。

使用Dockerfile,只需要小小的配置修改,就能够替代以往大量的更新工作,并且所有的修改都以增量的方式被分发和修改,从而更容易的实现自动化高效管理容器。

三、Docker与虚拟机比较
特性容器虚拟机
启动速度秒级别分钟级别
性能接近原生较差
内存代价很小较多
硬盘使用一般为MB一般为GB
运行密度单机支持上千个容器一般几十个
隔离性完全隔离完全隔离
迁移性一般
四、Docker核心概念
  • 镜像(image)

Docker镜像类似安装Win10、Win11系统的镜像,可以理解它为一个只读模板,一个镜像可以包含一个基本的操作系统环境,里面仅仅安装了Maven应用程序,可以把它称为一个Maven镜像。

镜像是创建Docker容器的基础,通过版本管理和增量的文件系统,Docker提供了一套非常简单的机制来创建和更新现有的镜像,甚至可以直接从网上下载一个已经做好的应用镜像并直接使用。

  • 容器(container)

Docker容器类型一个轻量级的沙箱,Docker利用容器来运行和隔离应用,容器是从镜像创建的应用运行实例,可以对其进行启动、开始、停止、删除、查看日志等操作,这些容器彼此相互隔离,不可见。

可以把容器看做一个简易版的Linux系统环境以及运行在其中的应用程序应用程序打包而成的盒子。

  • 仓库(repository)

Docker仓库类似于代码仓库,它是Docker集中存放镜像的地方。

Docker仓库分为公开仓库和私有仓库,Docker提供官方镜像仓库地址,https://hub.docker.com/,当然国内也有不少云厂商提供的仓库资源,例如阿里云容器镜像服务等;当然,Docker也支持用户在本地网络或公有云创建自己的私有仓库,用户可以在自己的私有仓库中找到自己上传的镜像文件。

※ 镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可用层。

五、安装配置

服务器版本ubuntu20.4。
在这里插入图片描述

官网提供的镜像源国内下载极其不稳定且速度慢,官网安装方式Install on Linux | Docker Documentation,根据自身系统选择对应安装教程即可,本文推荐下述方式安装。

访问DaoCloud | Docker 极速下载
在这里插入图片描述

执行该命令,等待安装完毕即可,安装完毕后可执行docker version查看docker版本信息。
在这里插入图片描述
配置国内镜像源,如不配置会导致下载某些镜像失败或速度过慢的情况,这里推荐配置阿里云镜像加速,我们打开阿里云,登录以后打开控制台。
在这里插入图片描述
添加快捷入口,搜索“容器镜像服务”,进行添加。
在这里插入图片描述
添加后点击进入,选择镜像工具,镜像加速器。
在这里插入图片描述
这时即可根据对应系统的操作文档进行操作。
在这里插入图片描述
我这里已经配置过就不展示配置过程了,配置后如图。
在这里插入图片描述

到这里我们的Docker就安装配置完成了。

※ 本文安装都是基于root用户安装,如非root用户安装,注意权限问题。

该系列不定期更新,创作不易,希望大家帮忙点赞转发,不甚感谢,另今日是2022年12月31日,作为年末的最后一天,LaoCat在这里祝大家在新的一年里砥砺前行,硕果累累。

参考文献:
《Docker技术入门与实践》 第2版
《Docker技术入门与实践》 第3版

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值