目录
Part.01 Docker介绍
Part.02 Kubernets与Docker的关系
Part.03 Kubernetes原理
Part.04 资源规划
Part.05 基础环境准备
Part.06 Docker安装
Part.07 Harbor搭建
Part.08 K8s环境安装
Part.09 K8s集群构建
Part.10 容器回退

第一章 Docker介绍

Docker是一种轻量级的容器化平台,可以将应用程序和环境依赖打包到一个可移植的容器中,并在任何环境中运行。

1.1.基础概念

base image:操作系统分为内核空间和用户空间,应用程序运行在用户空间,只需要利用操作系统用户空间部分就能构建出应用所需的环境,将选中的操作系统的文件系统和依赖库等打包成一个压缩包,就是基础镜像base image;
dockerfile:从操作系统到应用程序启动需要做哪些事情的清单文件;
docker image:docker bulid后,docker软件会按照dockerfile说明一行行构建环境加应用程序,最终讲这个环境加程序打包成一个压缩包,也就是容器镜像docker image;
registry:镜像仓库,主要解决多台服务器部署的问题,主要指令是docker push、dockerpull等,共有镜像仓库包括官方仓库dockerhub、清华大学Tuna等,也可以自行搭建私有镜像仓库。

1.2.容器与虚拟机的关系

虚拟机和容器结构看起来相似,但虚拟机自带一个完整的操作系统,而容器本身不带完整操作系统,容器只包含了操作系统的核心依赖库和配置文件等必要组件。
容器本质上只是一个自带独立运行环境的特殊进程,底层用的其实是宿主机的操作系统内核。
在这里插入图片描述
NameSpace:让容器看起来运行在一个独立的操作系统;
Cgroup:限制能使用的计算资源。

1.3.docker架构

docker是C-S架构,其中client为docker-cli,server为docker daemon
在这里插入图片描述
docker-cli接收输入的命令行,并进行解析,然后调用docker daemon守护进程提供的Restful API,守护进程收到命令后,会根据命令创建和管理各个容器。
Docker Server本身是个HTTP服务器,负责对外提供操作容器和镜像的API接口,接收到请求后,会分发给Engine层,Engine会创建job,由job实际执行。
Job执行的命令情况如下
docker bulid:job会根据dockerfile文件一层层构建容器镜像;
docker pull/push:job会根外部的docker registry交互,将镜像上传或下载;
docker run:job会根据镜像文件调用containerd组件驱使runc组件创建或运行容器。

1.4.docker周边程序

1.4.1.docker compose

一般情况下一个服务需要部署多个服务,且对部署顺序有一定要求,这时候需要用到docker-compose,比如网站的数据库服务、身份认证服务和WEB服务等。
正常可以挨个执行docker run命令,更优雅的解决方案是通过一个yaml文件,写清楚要部署的容器有哪些、部署顺序是怎么样的,以及这些容器占用的CPU和内存等信息,然后通过docker-compose up命令,解析yaml文件,将容器们一键顺序部署,就可以完成一整套服务的部署。

1.4.2.docker swarm

docker解决的是一个容器的部署问题;
docker compose解决的是多个容器组成的一整套服务的部署问题;
docker swarm解决的是一整套服务在多台服务器上的集群部署问题,可以进行容灾和资源扩缩容。

1.5.Docker版本

- 老旧版本:docker/docker.io/docker-engine/lxc-docker
RHEL/CentOS软件源中的Docker包名为docker;Ubuntu软件源中的Docker包名为docker.io;而很古老的Docker源中Docker也曾叫做lxc-docker。这些都是非常老旧的Docker版本,基本不会更新到最新的版本。
另外,17.04以后,包名从docker-engine改为docker-ce,因此从现在开始安装,应该都使用docker-ce这个包。

- 主流版本:docker-CE/docker-EE
docker-ce是社区版本是完全免费的;从1.XX版本升级到17.XX版本上的风险是非常小的;docker-ce还区分两个版本edge和stable版本;
edge版本是每个月发布一次,喜欢尝新的用户可以下载此版本,因此对于安全和错误只能当月获取与修复;stable版本是每个季度更新一次,也就是说是稳定版本。
docker-ee版本是由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的、经过认证的容器和插件;对于企业则提供了一下收费的高级特性。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐