Docker &K8s 持续集成

作者: 奥利奥_4e9e | 来源:发表于2019-11-22 00:26 被阅读0次

    一、Docker

        用来装应用的容器,也是一种集装箱的思想;

        Docker的特点:集装箱、标准化:运输方式 存储方式 API接口、隔离

    解决运行环境不一致问题,快速扩展和可伸缩

    1、Docker的三个概念:镜像 仓库 容器 

    Docker思想就是:去仓库把镜像拉到本地,然后用命令把镜像运行起来变成容器

    docker的分层文件系统就是镜像

    仓库 hub.docker.com

    2、Mac OS下载安装docker:

    https://www.docker.com/products/docker#/mac

    3、Dockerfile

            Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。

            docker build命令用于从Dockerfile构建映像。Dockerfile从上到下的顺序运行Dockerfile的指令,FROM用于指定基础镜像,另外还有RUN,CMD,FROM,EXPOSE,ENV等指令。(文章https://www.cnblogs.com/panwenbin-logs/p/8007348.html 中关于Dockerfile的指令讲解的详细)

    FROM:指定基础镜像,必须为第一个命令

    MAINTAINER: 维护者信息

    RUN:构建镜像时执行,用于在镜像容器中执行命令

    CMD:构建容器后调用,也就是在容器启动时才进行调用

    ADD:将本地文件添加到容器中

    ENV:设置环境变量

    WORKDIR:工作目录,类似于cd命令

    下图为一个简单的Dockerfile指令文件

    4、docker常用命令

    docker pull [OPTION] NAME[:TAG]   拉取镜像

    docker images [OPTIONS] [REPOSITORY[:TAG]]  查看镜像

    docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]  运行镜像

    docker ps  当前机器上正在运行的容器

    docker run -d IMAGE  后台运行容器并且打印容器ID

    docker build -t NAME:TAG  创建镜像

    docker stop 停止运行镜像

    docker restar ID 重启容器

    二、Kubernetes (k8s)

       基于容器技术的分布式架构方案,集群管理;

    k8s的思想是:根据参数文件取部署应用,根据命令去对集群进行管理,其实就是高度封装以往复杂的运维

    1、结构

    master主服务器

    node 用于部署应用容器的服务器

    2、配置yaml文件

    Deployment:定义pod的部署信息

    Service:将哪些pod组合成一个service

    若干个pod组成一个service,对外提供服务

    副本:是指一个pod的多个实例

    NameSpace:多租户的资源隔离,在测试环境中划分多套测试环境

    3、k8s安装(很多需要翻墙下载):

    三、持续集成

    CI 是一种软件开发实践,每次集成都通过自动化的构建(编译、打包、部署、自动化测试)来验证

    快速反馈和解决

    jenkins是一种持续集成的工具

    Registry :docker pull registry

    我们完成这样一个事情:

    Jenkins设置构建(参数化构建,代码库地址,maven构建命令)后,将jar包打包成docker镜像,并推送到registry镜像仓库中,应用的yaml文件拷贝到k8s的master上,让k8s根据配置启动应用。

    Jenkins的更多配置:代码检查、单测、接口测试、邮件通知

    相关文章

      网友评论

        本文标题:Docker &K8s 持续集成

        本文链接:https://www.haomeiwen.com/subject/hqyxwctx.html