一、什么是容器。
容器是将应用和其依赖打包在一起的一个集合。
我们要发布一款应用,一般流程是先在测试服务器上开发,配置环境,测通,然后再到生产环境,配置环境依赖然后部署应用。当我们有大量架构不同的应用需要配置到不同的生产环境,比如公有云、虚拟机,很容易因为环境的不容导致发布失败。
为了解决这个问题,受集装箱的启发,我们将应用和其依赖打包成一个轻量级、独立的、标准的集合,使其可以顺畅地运行在任何一个安装了容器管理系统的服务器中而不需要额外配置环境。这个集合就是容器。
容器使得开发运维人员只需要在发布之初在本地配置一次环境,就可以无差别地在测试环境、开发环境,公有云服务器、虚拟机上运行和维护应用。
二、什么是Docker
docker logo.jpg
Docker是使用Go语言开发的一个开源项目,实现轻量级的操作系统虚拟化解决方案,Docker可以自行搭建和配置开发环境,可以方便地创建使用容器,并且提供镜像仓库。
Doker的核心概念包含:
Docker辅助工机:用于操作Docker镜像
Docker镜像:只读模板,用于创建容器
Docker容器:用于运行应用
Docker仓库:类似于github,分为公有和私有,一个公司可以使用私有Docker hub来集中存储Docker镜像
Docker常用命令:查看镜像:docker images
创建镜像:docker build
上传镜像:docker push
获取镜像:docker pull
删除镜像:*docker rmi *
创建容器:docker create
启动容器:docker start -i container1
停止容器:docker stop
运行容器(crreate+start):docker run
查看容器列表:docker ps
三、容器云
容器与以容器为基本单位,提供构建发布运行应用的平台。
容器云以容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建,发布和运行分布式应用的平台。当容器云专注于资源共享与隔离、容器编排与部署,它更接近传统的IaaS;当容器云渗透到应用支撑与运行时环境时,它更接近与传统的PaaS.
四、kubernetes(k8s)
Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。主要概念有:
pod:k8s管理的最小单元,可以包含一个或多个容器
Node:pod在node上运行
replication container:可以用于制作pod的克隆,提供扩缩容逻辑支持
service:一个service有一个IP地址,可以通过这个serviceIP定位具体的pod
k8s.png
作者:王一欢
链接:https://www.jianshu.com/p/30c7caabf184