Docker介绍与安装

用了这么长时间的docker,最近把这些东西整合一下,做个记录

一.容器的特点

我们都知道容器就是一个标准的软件单元,它有以下特点:

  • 随处运行:容器可以将代码与配置文件和相关依赖库进行打包,从而确保在任何环境下的运行都是一致的。
  • 高资源利用率:容器提供进程级的隔离,因此可以更加精细地设置CPU和内存的使用率,进而更好地利用服务器的计算资源。
  • 快速扩展:每个容器都可作为单独的进程予以运行,并且可以共享底层操作系统的系统资源,这样一来可以加快容器的启动和停止效率。
  • 轻量:容器是进程级的资源隔离,而虚拟机是操作系统级的资源隔离,所以Docker容器相对于虚拟机来说可以节省更多的资源开销,因为Docker容器不再需要GuestOS这一层操作系统了。
  • 快速:容器的启动和创建无需启动GuestOS,可以实现秒级甚至毫秒级的启动。
  • 可移植性:Docker容器技术是将应用及所依赖的库和运行时的环境技术改造包成容器镜像,可以在不同的平台运行。
  • 自动化:容器生态中的容器编排工作(如:Kubernetes)可帮助我们实现容器的自动化管理。

二.docker体系结构 

  • Containerd:是一个简单的守护进程,使用runC管理容器。向Docker Engine提 供接口。
  • Shim:只负责管理一个容器。
  • runC:是一个轻量级的工具,只用来运行容器。

 

三.内部组件

  • Namespaces:命名空间,Linux内核提供的一种对进程资源隔离的机制,例如进程、网络、挂载点等资源。
  • CGroups:控制组,Linux内核提供的一种限制进程资源的机制;例如CPU、内存等资源。
  • UnionFS:联合文件系统,支持将不同位置的目录挂载到同一虚拟文件系统,形成一种分层的模型。

四.容器与虚拟机的区别

  • 启动时间:Docker秒级启动,VMware分钟级启动
  • 轻量化:容器镜像大小通常以M为单位,虚拟机以G为单位。容器资源占用小,要比虚拟机部署更快速。
  • 性能:容器共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,容器性能基本接近物理机;虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,虚拟化开销大,因而降低性能,没有容器性能好。
  • 安全性:由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,容器具有一定权限访问宿主机内核,存在一定的安全隐患。
  • 使用要求:VMware基于硬件的完全虚拟化,需要硬件CPU虚拟化技术支持;容器共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。

五.Docker安装

卸载原有版本
[root@k8s ~]# yum remove docker docker-common docker-selinux docker-engine
安装docker所依赖驱动
[root@k8s ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
添加yum源
[root@node1 ~]# yum-config-manager  --add-repo https://download.docker.com/linux/centos/docker-ce.repo
选择docker版本安装
[root@k8s ~]# yum list docker-ce --showduplicates | sort -r
选择安装18.03.1.ce
[root@k8s ~]# yum -y install docker-ce-18.03.1.ce
启动docker
[root@k8s ~]# systemctl start docker

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值