Docker概述

目录

Docker概述

工作中的困扰

在研发工作中,想必都有这样的场景

寻求解决

历史

Docker 基于 Go 语言开发。

简介

结构

底层原理

和虚拟机的区别

虚拟机原理示意图

容器化原理示意图

区别

Docker 为什么比 VM 快

DevOps(开发、运维)


docker学习

  • Docker概述

  • Docker为什么出现

  • Docker历史

  • Docker能干什么

  • Docker安装

  • 安装详细

  • 阿里云镜像加速

  • 回顾helloworld流程

  • Docker底层原理

  • Docker的常用命令

  • 帮助命令

  • 镜像命令

  • 容器命令

  • 其他常用命令

  • 小结

  • 作业

  • 部署nginx

  • 部署tomcat

  • 部署es+kibana

  • 可视化工具portainer

  • 镜像讲解

  • Docker镜像加载原理

  • 分层理解

  • commit镜像

  • 容器数据卷

  • 什么是容器数据卷

  • mysql实战操作

  • 具名挂载和匿名挂载

  • 初始dockerfile

  • 数据卷容器

  • dockerfile

  • dockerfile介绍

  • dockerfile搭建过程

  • 基础知识

  • dockerfile指令

  • 实战测试

  • 基础实战

  • tomcat实战

  • 发布自己的镜像

  • docker网络

  • 理解docker网络

  • --link(不适用当前)

  • 自定义网络

  • 网络连通

  • 实战:部署Redis集群

Docker概述

工作中的困扰

在研发工作中,想必都有这样的场景

测试:生产环境发版后又出问题了。

运维:我是按照开发给的包部署的。

开发:我本地没问题呀。

一款产品,开发生产两套环境,运维人员环境配置费时费力,且很容易出现问题。

出现问题后,开发人员和运维人员排查问题都是十分痛苦的,因为一个产品往往涉及到诸多环境,可能产生影响的因素实在太多。

寻求解决

要是能够把代码环境一块提供,运维人员拿来就直接运行,这个问题就迎刃而解了。

这就是所谓开发即运维,既能保证系统稳定性,也能提高部署效率。

为解决这一问题,Docker 横空出世。

历史

2010 年,几个搞 IT 的人,在美国成立一家公司 dotCloud

一开始他们是做一些 PaaS 的云计算服务。

他们将自己的容器化技术命名为 Docker

Docker 基于 Go 语言开发。

Docker 刚诞生的时候,并没有引起行业的注意,这也导致 dotCloud 快要经营不下去。

为了公司能生存,他们决定开源,以寻求更多的关注。

2013 年,Docker 开源,一下子爆火。

刚开源的时候,每个月都会更新一个版本。

2014 年 4 月 9 日,Docker 1.0 发布。

简介

官网:Empowering App Development for Developers | Docker

文档:Redirecting…

命令:Docker run reference | Docker Documentation

仓库:Docker Hub

Docker 是一个开源的应用容器引擎。

Docker 的思想来自于集装箱,彼此之间隔离。

Docker 通过隔离机制,可以将服务器利用到极致。

Docker 容器完全使用沙箱机制,相互之间不会有任何接口。

结构

  • 镜像(image):Docker 镜像好比一个模板,可以用来创建容器(container),一个镜像可以创建多个容器。
  • 容器(container):容器可以理解为一个微型的系统。
  • 仓库(repository):存放镜像的地方。

底层原理

Docker 是一个 Client-Server 结构的系统。

Docker 的守护进程运行在主机上,通过 Socket 从客户端访问。

Docker Server 接受 Docker-Client 的指令。

和虚拟机的区别

Docker所使用的容器化技术本质上属于虚拟化技术

提到虚拟化技术,最有名的就是虚拟机技术

虚拟机原理示意图

它有以下明显的缺点:

  • 资源占用多。启动虚拟机非常占内存,对电脑资源有不小的占用。
  • 冗余步骤多。启动虚拟机后,还需要进行一些步骤才能进入系统,效率比较低。
  • 启动很慢。由于虚拟机是虚拟化一整个系统,其启动时间会比较缓慢,一般都需要几分钟。

容器化原理示意图

容器化技术不是模拟一个完整的操作系统  

它不是模拟的完整操作系统,而是基于操作系统封装成了一个个小的运行环境。

区别

传统虚拟机Docker
虚拟内容硬件 + 完整的操作系统 + 软件APP + LIB
大小笨重,通常几个 G轻便几个 M 或 KB
启动速度慢,分钟级快,秒级

Docker 为什么比 VM 快

Docker 有着比 VM 更少的抽象层。

Docker 主要用的是宿主机的内核,而 VM 需要 Guest OS

新建容器的时候,Docker 不需要像 VM 一样重新加载一个操作系统内核,避免了引导的过程。

DevOps(开发、运维)

应用更快速的交付和部署 

        传统:一堆帮助文档,安装程序

       Docker:打包镜像发布测试,一键运行

更便捷的升级和扩缩容

        使用了Docker之后,我们部署应用就和搭积木一样!

        项目打包为一个镜像,扩展服务器A!服务器B

更简单的系统运维

        在容器化之后,我们的开发,测试环境都是高度一致的。

更高效的计算资源利用

         Docker是内核级别的虚拟化,可以再一个物理机上可以运行很多的容器实例!

         服务器的性能可以被压榨到极致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

gh-xiaohe

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

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

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

打赏作者

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

抵扣说明:

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

余额充值