Kubernetes学习笔记-Part.01 Docker介绍
Part.01 Kubernets与dockerPart.02 Docker版本Part.03 Kubernetes原理Part.04 资源规划Part.05 基础环境准备Part.06 Docker安装Part.07 Harbor搭建Part.08 K8s环境安装Part.09 K8s集群构建Part.10 容器回退。
目录
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的、经过认证的容器和插件;对于企业则提供了一下收费的高级特性。
更多推荐
所有评论(0)