【一、Docker概述】

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Docker 是一个基于go语言开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的`镜像`中,然后发布到任何流行的 `Linux`或`Window`操作系统的机器上,也可以实现`虚拟化`。容器是完全使用`沙箱`机制,相互之间不会有任何接口。

docker 概述

🐳1. Docker 概述

Docker 是一个基于go语言开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindow操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  • DockerClient客户端
  • Docker Daemon守护进程
  • Docker Image镜像
  • DockerContainer容器

🐳2. Docker的出现

一款产品:开发—>上线 俩套环境,应用配置!

开发与运维的爱恨纠缠:我开发好的程序,放到别人的电脑上,就是运行不了(各种问题,要么缺少配置,要么缺少依赖,要么缺少库),可能还会遇到,版本更新,导致服务不可用!对于运维人来说,巨大考验。

环境配置是一件非常头疼的事

  • 每一个集群都要部署环境(redis、ES、Hadoop)
  • 发布一个项目(jar+(Redis + MySQL + jdk + ES)),项目不能带上环境打包。
  • 在服务器配置的一个应用环境Redis、MySQL、jdk、ES、Hadoop,配置麻烦,不能跨平台。

1661157998770.png

🐙Docker作用

Docker为了解决上述问题

java -- apk --发布(应用商店)-- 小呆鸟使用apk -- 安装即可

java --jar(环境) --- 打包项目带上环境(镜像)--- (Docker仓库:商店)-- 下载我们发布的镜像 -- 直接运行即可。

1661158024222.png

🐙Docker思想

  • 它来自于集装箱!
  • 隔离:Docker的核心思想!将每个软件及依赖打包装箱,每一个箱子都是互相隔离的。
  • 在一条船上,有俩个箱子,一个是水果,一个是生化武器。docker就是使得这俩个箱子隔离,互不干扰。

🐙Docker VS 虚拟机

  • 虚拟机:在windows 中装一个Vmware,通过这个软件可以虚拟出来一台或者多台电脑!笨重!
  • 虚拟机属于虚拟化技术,Docker容器技术,也是一种虚拟化技术
vmware :linux centos原生镜像(虚拟出一台电脑) 隔离,需要开启多个虚拟机!    几个G   几分钟
docker :隔离,镜像(最核心环境 4m + jdk + mysql)十分小巧,运行镜像就可以! 几个M或者KB 秒级

🐳3. Docker能做什么

🐙虚拟机技术

1661158055920.png

虚拟机技术缺点:

  1. 资源占用十分多(一个虚拟机占用20G)
  2. 冗余步骤多
  3. 启动非常慢

🐙Docker容器化技术

容器化技术不是模拟一个完整的操作系统:例如你打开了一个虚拟机,里面装有linux系统,打开后,里面会有一些自带的浏览器,一些插件,但是docker里面什么也没有。

1661158103336.png

🐙Docker 和虚拟机技术的不同

  • 传统的虚拟机,虚拟机一个硬件,运行一个完整的操作系统,然后再这个系统上安装和运行软件。
  • 容器内的应用直接运行在宿主主机,容器是没有自己的内核的,也没有虚拟我们的硬件,所以轻便
  • 每个容器是相互隔离,每个容器内部都有一个属于自己的文件系统,互不影响。

🐙DevOps(开发、运维)

应用更快速的交付和部署

  • 传统: 一堆帮助文档,安装程序
  • Docker: 打包镜像发布测试,一键运行

更便捷的升级和扩缩容

  • 使用了Docker之后,我们的部署应用就和搭积木一样!项目打包为一个镜像,扩展 服务器A ! 服务器B
  • 传统 :我要升级APP(redia, mysql, tomcat),此时我要把mysql,redis等APP需要的软件,都要升级
  • Docker: 我只需要把这个镜像升级一下。(把(redia, mysql, tomcat)做成一个镜像)。

更简单的系统运维

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

更高效的计算资源利用

  • Docker 是内核级别的虚拟化,可以在一个物理机上运行很多容器实例! 服务器的性能可以极大提高

🐳4. Docker名词概念

1661158124843.png

🐙镜像(image):

docker镜像就好比一个模板(class类),可以通过这个模板来创建容器服务(根据class类,来创建对象), tomcat镜像==> run ==> tomcat01容器 (提供服务)。

🐙容器:(container)

Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建

启动、停止、删除、基本命令!

🐙仓库(repository):

仓库就是存放镜像的地方!

仓库分为公有仓库和私有仓库!

Docker Hub(默认是国外的)

阿里云等都有容器服务器(配置镜像加速!)

流程:用客户端来启动Docker里面的一个容器,这个容器要去服务器上下载。

目录
相关文章
|
4月前
|
Linux Go API
Docker入门概述
Docker入门概述
|
4月前
|
负载均衡 Shell Docker
Docker-Compose概述
Docker-Compose概述
|
6月前
|
Docker 容器
01Docker简介
01Docker简介
23 0
|
3月前
|
存储 Docker 容器
Docker学习笔记二:如何创建Docker镜像?
Docker学习笔记二:如何创建Docker镜像?
|
4月前
|
运维 虚拟化 开发者
Docker的概述
Docker的概述
32 0
|
8月前
|
Docker 容器 Kubernetes
【docker简介】
【docker简介】
97 2
|
8月前
|
Java 关系型数据库 MySQL
Docker简介
Docker简介
106 0
|
9月前
|
Java Linux 虚拟化
Docker从入门到精通——Docker概述
Docker从入门到精通——Docker概述
69 0
|
11月前
|
存储 缓存 关系型数据库
01-Docker 概述与安装
01-Docker 概述与安装
|
运维 Java Linux
Docker 简介
Docker 简介
126 0
Docker 简介