zoukankan      html  css  js  c++  java
  • Docker(1)概述

    Docker

    Docker为什么会出现

    一款产品:有开发环境,测试环境,线上环境三种环境

    开发环境到线上环境,问题:我在我的电脑上可以运行!你的电脑不能运行!

    版本更新,导致了服务不可用。环境配置麻烦,每个机器都要去部署环境(redis,mysql,hadoop,python)耗时耗力。

    ps::我曾经就遇到过Jenkins之前不是用docker去部署的,然后Jenkins中的某个插件更新了,导致缺少了配置项,我排查了很久。如果用docker就不会遇到这个问题

    Docker能干嘛

    之前的虚拟机技术

    1个内核,上面安装各种依赖的,然后才是我们的应用

    虚拟机技术缺点

    1.资源占用多

    2.多余的步骤多

    3.启动慢

    容器化技术

    1个内核上面可以有多个docker容器,1个容器各自有各自的应用和各自应用所需要的依赖环境

    每个容器是相互隔离的,互不影响

     

    Docker介绍

    Docker简介

    • Docker 是一个开源的应用容器引擎,基于 Go 语言
    • 可以打包应用以及依赖包到一 个轻量级、可移植的容器中
    • Docker 打包好了的容器,可以发布到任何流行的 Linux 机器上,也可以实现虚拟化
    • 容器是完全使用沙箱机制,相互之间不会有任何接口(独立)
    • 容器性能开销极低
    • Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器
    • Docker 是实现容器技术的一种工具
    • Docker 容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样

    工作中应用的场景

    • Web 应用的自动化打包和发布
    • 自动化测试和持续集成、发布
    • 组建微服务架构,通过多个容器,一台机器可以跑多个服务,因此在本机可以模拟出微服务架构

    Docker 实现 DevOps(开发、运维)

    • 应用更快速的交付和部署(docker:打包镜像发布测试,一键运行; 传统:写一堆安装手册,部署文档,然后安装)
    • 更便捷的升级和扩缩容(部署应用就像搭积木一样方便,我们把mysql, springbot等各种环境打包成一个镜像,只需要更新镜像就行;  传统的:需要对mysql,springbot进行一个个的升级,还可能出现不兼容的情况,很麻烦)
    • 更简单的系统运维,开发,测试,线上环境高度一致(不会出现我开发环境是好的,你测试环境不好的这种问题)
    • 更高效的计算资源利用,docker是内核级别的虚拟化,可以在一个物理机上运行很多个容器实例,服务器性能可以被压榨到极致

    Docker名词解释

    Docker基本组成

    上图解释

    • 在 Docker Client 敲 Docker 命令调用 Docker API 来操作 Host 上的 Docker 服务
    • Docker 服务可以从仓库拉镜像到本机,也可以用本机镜像创建一个容器并运行

    仓库(Registry)

    • 集中存放镜像文件的场所
    • 每个镜像文件有不同的标签(不同的版本)
    • 最大的开放仓库是Docker Hub,默认是国外的: https://hub.docker.com/ 存放了数量庞大的镜像供用户下载
    • 国内的公开仓库包括阿里云,网易云等,要配置镜像加速
    • 仓库分为公开仓库( public )和私有仓库( private )两种形式

    镜像(Images)

    • 创建容器的模板
    • 一个镜像可以创建很多容器

    容器(Containers)

    • Docker 利用容器独立运行一个或一组应用(服务),通过镜像来创建的
    • 每个容器之间是相互隔离的
    • 它可以被启用、开始、停止、删除

    主机(HOST)

    • 一个物理机或虚拟机
    • 用于运行 Docker 守护进程和多个容器
    • 可存放多个镜像
    • 也称为宿主机,node节点

    Docker 守护程序(docker daemon)

    • 监听 Docker API 请求
    • 也会管理 Docker 对象,如:镜像、容器、网络、卷
    • 守护程序还可以与其他守护程序通信以管理 Docker 服务

    Docker 客户端(client)

    • 客户端使用 Docker 命令或其他工具调用 Docker API
    • 当然也可以在 HOST 直接敲 Docker 命令
    • 客户端可以与多个 Docker 守护程序通信

    官方介绍文档

    https://docs.docker.com/get-started/overview/

  • 相关阅读:
    转 configure: error: Cannot find ldap.h
    DDoS(Distributed Denial of Service,分布式拒绝服务)
    j2ee 1.5和1.6的区别
    机器学习
    免安装版Tomcat6.0启动方法
    mysql补充(2)常用sql语句
    mysql补充(4)数据完整性
    mysql补充(3)优化sql语句查询常用的30种方法
    mysql补充(1)校对集utf8_unicode_ci与utf8_general_ci
    jdbc(1)(一)
  • 原文地址:https://www.cnblogs.com/xinhua19/p/15620355.html
Copyright © 2011-2022 走看看