Docker背景-理论
2025-4-20
| 2025-4-20
Words 711Read Time 2 min
type
status
date
slug
summary
tags
category
icon
password

背景

没有 docker 遇到的痛点

  • 本地开发的环境版本和服务器不一致,需要运维安装对应的版本,繁琐。
  • 流量高峰期的时候,需要扩容机器,安装环境需要较长时间,不能立刻扩容。

Docker如何解决

  • 开发的时候不只是只把源码打成包,把源码+配置+环境+版本等等打包成一个镜像,拿到服务器直接可以运行,和开发的环境是一样的。
  • 这个镜像就是 docker 镜像文件
  • 解决了环境迁移,移植版本的问题
比如搬家,原来是把东西全部搬过去,这其中肯定有一些损耗。现在是把整座楼都挖过去
notion image
image-20230923171548103

docker 理念

  • 一次镜像,处处运行
  • docker和虚拟机的相似之处
    • docker 的逻辑和虚拟机很像,用一个软件(Vmvare),安装一个 linux 的系统镜像,就可以安装多个系统,系统间和外面的主系统是不相关的。docker只需要一个镜像文件,在 docker 里运行,就可以形成一个一个的服务。
  • 不同之处
    • 在传统虚拟机,如果创建多个系统,每个iso都是一整套完整的系统,导致非常占用资源,启动慢。
    • docker本身有一套最基础的资源,只会给每个镜像分配最基础的运行环境资源。就和他的图标一样,一个鲸鱼上面放着各种集装箱。
notion image
image-20230923173313898

下载&&安装

https://www.docker.com
https://hub.docker.com

docker 基本组成

  • 镜像
    • 是一个只读的模板,可以用来创建多个容器
    • docker 镜像文件类似于 java 的类模板,而 docker 容器实例类似于 java new 出来的实例对象
  • 容器
    • 可以看作是一个简易版的 linux 环境(运行所需要的最小环境)和运行在其中的应用环境。类似于java 的实例。
      • 为什么简易,上面说到,只要运行所需要的最小环境。
  • 仓库
    • 类似于 github,存放镜像文件的地方。

架构图

  • 客户端发送命令给 host
  • 本地有容器直接运行,没有从仓库拉取运行
notion image
image-20230923185026387
docker是一个 cs 结构,守护进程运行在主机上,通过 socket连接从客户端访问容器,执行命令。
notion image

安装

测试是否安装好
notion image

配置阿里镜像加速器

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

总结

  • docker有着比虚拟机更少的抽象层
  • docker直接利用宿主的 os,不像虚拟机,每个镜像都是重新加载所有的系统资源
Fizz-BuzzCompletableFuture
Loading...