当前位置: 移动技术网 > IT编程>数据库>MSSQL > Docker容器

Docker容器

2020年07月21日  | 移动技术网IT编程  | 我要评论

一、概述

1.案例

远洋运输案例:生活案例

  1. 需求:远洋运输以下商品,要求保证产品安全同时要高效完成运输
    在这里插入图片描述
  2. 西瓜问题:
    汽车放在了西瓜上,钢筋放在了玻璃杯上,汽车放在了钢琴上,是有放在了服务器上…
  3. 运输方案:
    将汽车,香蕉,钢琴,玻璃杯等产品装入集装箱,然后将集装箱装运到港口码头,将集装箱状图货运船只完成运输。
    在这里插入图片描述在这里插入图片描述

服务开发运行案例:实际工作案例

  1. 需求:在服务器上完成一个普通的web项目的部署,该项目同时使用到了缓存和数据库;后期服务会有扩展可能。
    在这里插入图片描述
  2. 西瓜问题:
    部署web服务需要安装jdk,tomcat/jetty等服务,如果忘记将导致服务无法启动…
  3. 原始化部署方案:
    1).单机部署方案
    在这里插入图片描述
    2).集群化部署
    在这里插入图片描述3). 其他问题:
    A.服务安装问题:安装jdk,tomcat,nginx,redis,mysql等服务繁琐且容易出错,案例
    B.资源占用问题:硬件资源浪费
    C.服务扩展问题:服务集群化扩展困难,风险高。
  4. Docker部署方案
    1).单应用版部署方案
    在这里插入图片描述

2).集群部署方案:
在这里插入图片描述
3).docker对问题的解决
A.服务安装问题:容器初始化安全,简单,快捷。案例
B.资源占用问题:可以充分利用硬件资源,避免硬件资源浪费
C.服务扩展问题:服务集群化扩展简单,风险低。

2.容器

什么是容器:

在这里插入图片描述

  1. 容器定义:
    容器是一种轻量级、可移植、自包含的软件打包技术;是应用程序可以在几乎任何地方以相同的方式运行。开发人员创建并测试好的容器,无需任何修改就可以在生产环境的系统(物理机、虚拟机、云主机)上运行。
  2. 容器特性
    A. 打包技术:可以将任何软件和依赖打包进一个容器中。
    B. 可移植:不需要修改就可以在所有平台上使用(前提是目标及其安装了docker engine)
    C. 高效化:能够快速启动和迁移
    D. 隔离性:资源、网络、库等都是隔离的,不会出现依赖问题。
    E. 方便管理:提供了针对容器的run、start、stop等标准化操作,方便自动话和管理。
    F. 分工明确:开发只注重业务开发,运维只注重基础的环境管理。

为什么使用容器

  1. 开发人员
    创建一次运行环境,打包成容器(镜像)后就可以在任何地方运行了。
  2. 运维人员
    只要配置好标准的running(部署了docker engine)环境,就可以运行开发人员开发的任何容器;这对运维人员来说工作变得一致,可重复,同时也意味着高效。

容器工作方式

  1. 参与容器工作的元素
    Docker客户端:Docker Client
    Docker服务器:Docker daemon
    镜像文件仓库:Registry
    Docker镜像:Image
    Docker容器:Container
  2. 各个元素之间的关系
    镜像仓库负责保存开发人员打包好的镜像(image);
    容器是根据镜像创建而来;
    运维人员通过Docker Client发送命令给Docker Daemon来从镜像仓库中下载镜像,然后根据镜像创建和管理Docker container。
  3. Docker架构图
    在这里插入图片描述

容器部署部署架构

  1. 部署架构
    在这里插入图片描述
  2. 容器部署架构和虚拟机部署架构区别
    A. 硬件资源充分利用;
    B. 轻量化,快速启动和迁移
    在这里插入图片描述

二、镜像

1.镜像和容器关系

容器是运行在服务器中的实际存在的实例,容器是根据镜像创建而来,镜像中定义了容器中所运行的有的软件和依赖。

2.镜像内部结构

基础镜像

  1. linux操作系统
    Linux操作系统由内核空间和用户空间组成,各发行版版的操作系统(如Ubuntu/CentOS/Debian)都是用户空间不同,内核空间是一样的。
    在这里插入图片描述
  2. Docker版操作系统镜像
    A.Docker镜像分为基础镜像和其他镜像,其他镜像以基础镜像为基础扩展而来;
    B.Docker基础镜像就是各种Linux发行版的Dockder镜像;
    在这里插入图片描述
  3. 二者区别
    A.Docker版镜像只有200多兆
    B.正式发行版系统至少有1G
    在这里插入图片描述
    C. Docker基础镜像提供的是最小安装的Linux发行版(如/dev、/proc、/bin)
    D. 其他发行版在此基础上还选装了很多软件、服务、图形化等工具。
    在这里插入图片描述

镜像分层

  1. Docker分层结构

Docker支持通过扩展现有镜像,创建新的镜像(实际上Docker Hub中99%的镜像都是基于base镜像扩展而来),没安装一个软件,就在现有镜像之上叠加一层。

FROM debian
RUN apt-get install emacs
RUN apt-get install apache2
CMD ["/bin/bash"] 

在这里插入图片描述
2. 分层优点:共享资源

镜像构建

镜像分发

三、容器

创建运行容器

容器操作:
启动、停止、和重启、pause、unpause、删除容器
容器状态

容器资源限制:
内存、CPU、IO

容器底层技术:cgroup和namespace

四、网络

单机:
网络类型:
none、host、bridge、user-defined

容器间通信:
IP通道、Docker DNS Server、joined容器

容器与外部通信:
容器访问外部,外部访问容器;

五、Docker存储

Data Volume
Data Volume 生命周期管理

其他:
stroage driver、数据共享、Volume container、Data-packed volume container

六、多主机管理

多主机安装、管理

多机网络:
overlay
libnetwork & CNM、macvlan、fiannel、weave、calico、
各种网络比较

七、容器监控

Docder自带监控
prometheus监控,
其他监控

八、日志管理

本文地址:https://blog.csdn.net/weixin_41909330/article/details/107458574

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网