【开源时代】Docker与Kubernetes(K8S)【基础篇】

目录

Docker

一、什么是docker

二、docker的优势

三、虚拟化与docker

四、虚拟机与docker的区别

五、Docker入门操作

K8S(Kubernetes)

一、什么是Kubernetes?

二、Kubernetes与docker的区别

三、为什么使用Kubernetes?(Kubernetes的优势)

四、Kubernetes的模块及其组件功能


Docker

一、什么是docker

1、docker是一款基于go语言开发的开源容器技术。

二、docker的优势

LXC:Linux容器
    1、快速(启动和停止可以在秒级内实现)
    2、开源(EE版为企业版、CE版为社区版)
    3、轻量化(对系统资源消耗小,一个容器最小可达到几KB大小,一台主机可运行上千台容器)
    4、部署灵活、管理高效、迁移方便。

三、虚拟化与docker

传统的虚拟化是在硬件上面部署Host OS,然后再在Host OS上部署VMM,然后才能部署相应的虚拟机,而各自的虚拟机又有独属于自己的Guest OS,这样极大的占用了资源,而docker则是直接在Host os上部署docker,相比于传统的虚拟化,docker没有部署VMM,极大的节约了空间,减少了开销,而且,docker屏蔽了底层操作系统的差距,在运行速度上更胜一筹。

四、虚拟机与docker的区别

容器与虚拟机相比,容器启动速度更快,能达到秒级启动,而虚拟机的话他还要加载配置文件,一般要十几秒到几分钟,还有就是轻量化,一个容器最小可以达到几KB几MB,而虚拟机一般都是几百兆几个G,容器能做到快速迁移,因为他很小,而虚拟机文件一般比较大,所以在迁移过程中比较缓慢,总的来说:docker比虚拟机更轻量化、管理更方便,部署更灵活。

五、Docker入门操作

     1、下载(拉取镜像)
          #docker pull 镜像名称[tag] ----->如果不指定tag,则默认选择最新的版本
          例#docker pull ubuntu:18.08
     2、利用该镜像构建一个容器
          #docker run -itd --name ceshi centos:centos7    ------>-it:交互式运行一个容器,-d:后台运行,--name:为容器命名,-v:挂载数据卷,-p:映射端口
     3、查看镜像信息
          #docker image ls #docker images  ---->可查看本地已有的镜像
     4、查看镜像的详细信息
          #docker inspect 镜像id或者镜像名
     5、搜寻镜像(搜索远端仓库中的镜像     )
          #docker search 镜像名称
     6、删除镜像
          #docker rmi 镜像名或id     加-f强制删除
     7、查看本机上运行的所有容器进程
          #docker ps -a      不加-a参数仅显示当前正在运行的进程
     8、删除容器
          #docker rm 容器名或者id   加-f强制删除
     9、基于已有镜像的容器创建
          #docker commit 容器名或者id    加-p参数提交时暂停容器运行
     10、创建容器
          #docker create -it 镜像    -it交互式运行,注意,docker run是创建并运行,而docker create创建的新容器处于停止状态。
          dockers run 等价于docker create + docker start
     11、终止容器运行
          #docker stop 容器名
          #docker kill 进程号
     12、进入容器
          #docker exec 容器名或者id

     13、网络模式:
        bridge:桥接 docker (默认)
        none:不配置网络
        host:和宿主机共享网络
        container:容器网络连通!

     14、自定义网络可以解决 容器之间不能通过name之间访问的问题。

        docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

        --dridge bridge 网络模式为 桥接模式
        --subnet 192.168.0.0/16 设置子网
        --gateway 192.168.0.1 设置网关

     15、查看新建网络:
        docker network ls
        创建一个带自定义网络的容器:
        docker network inspect 网卡名
        docker run -d -P --name tomcat-net-01 --net mynet tomcat
        docker run -d -P --name tomcat-net-02 --net mynet tomcat

K8S(Kubernetes)

一、什么是Kubernetes?

Kubernetes是一套由谷歌基于GO语言开发的自动化容器运维的开源平台。这些运维操作包括部署、调度和节点集群间的扩容。

二、Kubernetes与docker的区别

我们可以将docker看做是Kubernetes内部的一个组件,而Kubernetes则是管理docker容器的工具。如果把docker的容器比作是飞机,那么Kubernetes就是机场。

三、为什么使用Kubernetes?(Kubernetes的优势)

    1、它能够快速、精准的部署应用程序
    2、弹性伸缩
    3、迁移方便
    4、扩展灵活
    5、具有自动化修复功能

四、Kubernetes的模块及其组件功能

Kubernetes可分为两大部分,分别为Master部分和Node部分;其中Master部分的组件有K8S API Server、K8S Controller Manager和K8S Scheduler(K8S调度器)
  Node部分的组件有etcd、kubelet、kube-poxy、pod和docker引擎等
    1、Kubernetes API Server
        Kubernetes API服务器提供了各类资源对象的增、删、改、查接口,是整个系统的数据总线和数据中心;同时还提供了集群管理的接口,包括认证授权、
        数据校验和集群状态变更,是资源配额控制的入口。
    2、Kubernetes controller manager
        Kubernetes控制器管理器是集群内的控制管理中心,管理集群内的node节点、pod副本、服务站点、资源配额等,当某个node意外宕机时controller manager
        会及时发现并执行自动化修复流程,确保集群始终处于正常工作状态。
    3、Kubernetes scheduler
        Kubernetes调度器根据特定的算法把pod调度到指定的工作节点node上。
    4、etcd
        用于保存集群所有的网络配置和对象的状态信息。
    5、kubelet
        每个node节点上都会启动的进程,用来处理master节点下发的任务,定期向master汇报节点资源的使用情况。
    6、kube-proxy
        运行在所有node节点上,监听每个节点上Kubernetes API中定义的服务变化情况,并创建路由规则来进行服务负载均衡。
    7、pod
        pod是容器最基本的操作单元,,一个pod中包含一个或多个紧密相关的容器,每一个pod中运行着一个特殊的pause容器,其它为业务容器,这些业务容器共享
        pause容器的网络栈和挂载卷以及IP地址。
    8、docker引擎
        负责容器的创建和管理

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿~想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值