CentOS Docker安装

本文介绍了Docker在CentOS7上的安装过程,强调了Docker的系统需求,如64位系统和内核版本3.8以上。Docker由镜像、容器和仓库等组成,其中镜像是容器的基础,仓库是存储镜像的中心。文章还探讨了Docker与虚拟机相比的性能优势,因为它不需虚拟化硬件,直接使用宿主机内核,从而实现更快的启动和更高的资源利用率。
摘要由CSDN通过智能技术生成

CentOS Docker安装

Docker安装环境

Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。因此Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。
前提条件
目前,CentOS 仅发行版本中的内核支持 Docker要求系统为64位、Linux系统内核版本为 3.8以上,这里选用Centos7.x,Docker 运行在CentOS 7(64-bit)上,
查看自己的内核
uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
在这里插入图片描述

Docker的基本组成

镜像(image)

Docker 镜像 (lmage) 就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。它也相当于是一个root文件系统。比如官方镜像 centos:7 就包含了完整的一套 centos:7 最小系统的 root 文件系统。相当于容器的“源代码”,docker镜像文件类似于Java的类模板,而docker容器实例类似于java中new出来的实例对象。

Docker面向对象
容器对象
镜像
容器(container)

从面向对象角度
Docker利用容器〈Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。就像是Java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
从镜像容器角度
可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

仓库(repository)

仓库(Repository)是集中存放镜像文件的场所。
类似于
Maven仓库,存放各种jar包的地方;
github仓库,存放各种git项目的地方;
Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是 Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等。

Dokcer平台架构和底层通讯原理在这里插入图片描述

Docker是一个C/S模式的架构,后端是一个松耦合架构,众多模块各司其职。
Docker 运行的基本流程为:

  1. 用户是使用Docker Client与Docker Daemon建立通信,并发送请求给后者。
  2. Docker Daemon作为Docker 架构中的主体部分,首先提供 Docker Server的功能使其可以接受 Docker Cient的请求。
  3. Docker Engine执行Docker内部的一系列工作,每一项工作都是以一个 Job的形式的存在。
  4. Job的运行过程中,当需要容器镜像时,则从 Docker Registry 中下载镜像,并通过镜像管理驱动Graph driver将下载镜像以Graph的形式存储。
  5. 当需要为Docker创建网络环境时,通过网络管理驱动Network driver创建并配置 Docker容器网络环境。
  6. 当需要限制 Docker容器运行资源或执行用户指今等操作时,则通过 Exec driver 来完成。
  7. Libcontainer是一项独立的容器管理包,Network driver以及Exec
    driver都是通过Libcontainer来实现具体对容器进行的操作。

Docker运行原理

Docker是一个Cient-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端安受命令并管理运行在主机上的容器。容器,是一个运行时环境,就是我们前面说到的集装箱。可以对比mysql演示对比讲解。
在这里插入图片描述

Docker安装步骤

  1. 确定你是centos7及以上版本
  2. 卸载旧版本
  3. yum安装gcc相关
CentOS7能上外网
yum -y install gcc
yum -y install gcc-c++
  1. 安装需要的软件包
官网要求
执行命令
sudo yum install -y yum-utils
//设置的是国外的仓库,下载镜像容易超时
  1. 设置stable镜像仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//设置国内阿里云的
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新yum软件包索引
yum makecache fast
  1. 安装DOCKER CE
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 启动docker
sudo systemctl start docker
  1. 测试
docker version
docker run hello-world

在这里插入图片描述

  1. 卸载
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

配置阿里云镜像加速

  1. 登录阿里云开发者平台
  2. 点击控制台
  3. 选择容器镜像服务
  4. 获取加速器地址
    在这里插入图片描述

Hello World

docker run hello-world干了什么呢
在这里插入图片描述

为什么Docker会比vw虚拟机快

docker有着比虚拟机更少的抽象层
由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
docker利用的是宿主机的内核,而不需要加载操作系统OS内核
当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。

Docker容器虚拟机(VM)
操作系统轻与宿主机共享OS宿主机OS上运行虚拟机OS
存储大小镜像小,便于存储与传输镜像庞大(vmdk、vdi等)
运行性能几乎无额外性能损失操作系统额外的CPU、内存消耗
移植性轻便、灵活,适应于Linux笨重,与虚拟化技术耦合度高
硬件亲和性面向软件开发者面向硬件运维者
部署速度快速,秒级较慢,10s以上
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值