那你说一下docker吧:
docker是一个虚拟化容器引擎,他的一句话说的非常好
Build, Ship, and Run Anywhere
Build、Ship and Run
Build(构建镜像) : 镜像就像是集装箱,包含文件以及运行环境等等资源;
Ship(运输镜像) :在宿主机和仓库间进行运输,这里仓库就像是超级码头;
Run (运行镜像) :运行的镜像就是一个容器,容器就是运行程序的地方。
你build一个镜像image然后可以在docker的公有云上docker hub发布传输,然后别人去pull拉取你的image镜像就可以run了
由于不同的机器不同的操作系统,不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环境配置操作。
Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。
使用 Docker 可以不修改应用程序代码,不需要开发人员学习特定环境下的技术,就能够将现有的应用程序部署在其它机器上。
docker和虚拟机的比较
docker他只是一个进程!!虚拟机他要启动关闭,他是一个完整的操作系统。一台机器可以开启成千上万个 Docker。
docker优势
更容易迁移
提供一致性的运行环境。已经打包好的应用可以在不同的机器上进行迁移,而不用担心环境变化导致无法运行。
更容易维护
使用分层技术和镜像,使得应用可以更容易复用重复的部分。复用程度越高,维护工作也越容易。
更容易扩展
可以使用基础镜像进一步扩展得到新的镜像,并且官方和开源社区提供了大量的镜像,通过扩展这些镜像可以非常容易得到我们想要的镜像。持续集成
持续集成指的是频繁地将代码集成到主干上,这样能够更快地发现错误。
Docker 具有轻量级以及隔离性的特点,在将代码集成到一个 Docker 中不会对其它 Docker 产生影响。提供可伸缩的云服务
根据应用的负载情况,可以很容易地增加或者减少 Docker。搭建微服务架构
Docker 轻量级的特点使得它很适合用于部署、维护、组合微服务。
Docker容器有几种状态?
四种:运行、停止、重新启动、退出。
什么是dockerFile
1.dockerfile是一个,包含了若干的命令行的,文本配置文件,用于快速创建自定义的镜像。
3.文本格式:基础镜像FROM,维护者MAINTAINER,操作指令ADD,容器启动后指令等共计4部分。
DockerFile中最常见指令
指令 | 备注 |
FROM | 指定基础镜像 |
LABEL | 功能为镜像指定标签 |
CMD | 容器启动时要运行的命令 |
RUN | 运行指定命令 |
docker使用与实践:
命令 | 备注 |
docker pull | 拉取镜像,或更新 |
docker push | 将镜像推送到远程仓库 |
docker rm | 删除容器 |
docker rmi | 删除镜像 |
docker images | 列出所有镜像 |
docker ps | 列出所有容器 |
docker命令:
提示:这里可以添加计划学习的时间
例如:
1、 周一至周五晚上 7 点—晚上9点
2、 周六上午 9 点-上午 11 点
3、 周日下午 3 点-下午 6 点
docker与k8s:
K8S,基于容器的集群管理平台,它的全称,是kubernetes。容器编排工具
一个K8S系统,通常称为一个K8S集群(Cluster)。
这个集群主要包括两个部分:
一个Master节点(主节点),管理和控制
一群Node节点(计算节点),工作负载节点,里面是具体的容器
Master节点和Node节点
Master
Master节点包括API Server、Scheduler、Controller manager、etcd
API Server,整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。
Scheduler,对集群内部的资源进行调度,相当于“调度室”。
Controller manager,管理控制器,相当于“大总管”。
Node
Node节点包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可选)、Pod。
Docker,不用说了,创建容器的。
Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等。
Kube-proxy,为Pod对象提供代理。
Fluentd,主要负责日志收集、存储与查询。
Pod是Kubernetes最基本的操作单元。
一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。
除了Pod之外,K8S还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口。