Docker的原理和安装

Docker的原理

为什么docker这么火,因为它符合互联网的要求“快”。

在前面博文中对互联网的“快”我有过自己的理解,“快”分为两个方面:性能快和使用快。

 

先看性能快:主要是与虚拟机技术做对比的,docker通过文件隔离的方式来实现的,vm是软件模拟硬件,docker是直接共享物理硬件资源。

先搞明白3个玩意:

docker环境。在在linux上安装一个环境,用来管理下面的镜像和容器

Image镜像。跟vm的系统镜像文件概念类似,都是只读的。

Container容器。操作系统角度来理解,就像是利用镜像文件创建了个系统,Java角度来理解,就是利用Spring boot项目java –jar启动了一个程序。这层是我们真正未来的工作区,是可读写的。

找来找去,还是下面这个图最能解释Image和Container的关系

 

 

相同的Container可以共享底层的只读文件系统(同一个Kernel),使得你可以跑N多个Container而不至于你的硬盘被挤爆了!这个只读的层就是Image!而如你所看到的,一个可写的层就是Container。

采用Docker后,一台Linux可以跑十几二十几个docker容器,而且容器直接使用物理机的硬件资源,比起跑3-4个VM而且还得通过虚拟软件方式来使用硬件资源,高低立断。

 

 

 

再看使用快:Docker的共享、传播、容器创建太方便了。

举个例子,Spring微服务结点是高可用性的,同一个项目要通过多个结点来部署。

假如采用vm的方式,先装一个linux的vm,安装好java home和spring的jar包,然后做成镜像,再去另一个vm里通过镜像恢复OS出来。

假如采用docker的方式,先装好docker的环境(我们可以提前准备好带有docker环境的linux镜像),然后下载带有java home的docker镜像,启动该java镜像的容器,然后上传spring jar包到容器中,把此时的容器重新创造成一个新的镜像。这样无论后续再创建多少个服务节点,只要利用这个新docker镜像启动容器就可以了。

 

两者相比:

docker容器的启动是秒级别的,VM的镜像恢复是分钟级的;

VM镜像文件的大小是G级别的,docker中一个容器的传播就是一条命令或者一个build的文本文件。

 

 

 

Docker的安装:

LinuxOS版本:CentOS-7-x86_64

安装好后,习惯性关闭图形化界面,既然了使用linux,我们就玩纯命令行的。

命令:su root

命令:systemctl set-default multi-user.target

命令:reboot

重启后再来,舒服多了!

用root用户重新登录,更新yum包

命令:yum –y update

安装docker

命令:yum –y install docker-io

命令:su docker用户

用docker用户启动docker环境

命令:service docker start//启动docker

检查是否启动成功

命令:docker version//查看docker版本

命令:chkconfig docker on //加入开机启动

Docker在centos上的安装到此位置,下篇我们将学习常用的docker命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker和Kubernetes是两个在容器化应用领域非常流行的工具。 Docker是一种容器化平台,它可以将应用程序及其依赖项打包到一个可移植的容器中,以便在不同的环境中运行。Docker使用了Linux内核的容器技术,通过隔离进程、文件系统和网络等资源,实现了高度可移植、可扩展且隔离的应用运行环境。Docker容器可以在任何支持Docker的操作系统上运行,而不受底层操作系统的限制。 Kubernetes是一个开源的容器编排和管理平台,它可以帮助我们自动化容器的部署、扩展和管理。Kubernetes提供了一个集群管理的框架,可以将多个Docker容器组织成一个弹性、可伸缩的应用。Kubernetes通过自动化调度、负载均衡、容错恢复等机制,实现了高可用性和高性能的容器集群。 基本原理上,Docker通过使用Linux内核的容器技术实现了应用程序与底层操作系统的隔离。它使用了命名空间、控制组、文件系统等技术,确保每个容器拥有独立的运行环境。 Kubernetes则是建立在Docker之上的容器编排和管理平台。它通过使用API来管理容器集群,提供了自动化的容器编排、服务发现、负载均衡、水平扩展、滚动升级等功能。Kubernetes利用标签和选择器机制,可以方便地对容器进行管理和操作。 总的来说,Docker提供了容器化的运行环境,而Kubernetes则提供了容器集群的编排和管理能力,使得我们可以更方便地部署和管理容器化应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值