为什么会是Docker?

简介: 最近Docker容器化部署特别火热,那为什么说Docker是下一代的容器工具?回答这个问题之前,我们就服务器的历史演变来简单说明一下。

最近Docker容器化部署特别火热,那为什么说Docker是下一代的容器工具?回答个问题之前,我们就服务器的历史演变来简单说明一下。


微信图片_20220607205108.png

服务器变化演进


1、物理机时代


物理服务器又名独立服务器,顾名思义,就是一个躺在机房的实实在在的物理服务器简单描述就是一个物理机上先安装操作系统,然后直接安装运行我们的应用软件。


微信图片_20220607205111.png

物理服务器架构


这样的缺点很明显:


  • 部署慢


  • 逐个机器安装系统,部署应用


  • 成本高


  • 物理机部署应用


  • 资源浪费


  • 硬件资源没有合理利用


  • 后期迁移、扩展成本高


  • 每次迁移都要重新安装一模一样的运行环境


2、虚拟机时代


一个物理机上虚拟化出来多个虚拟机,每个虚拟机上进行安装操作系统,然后在虚拟机上直接安装运行我们的应用软件。例如阿里云、腾讯云等云服务器都属于虚拟机。


微信图片_20220607205115.png

虚拟服务器架构

这样的优势是:


  • 多部署


  • 每台物理机可部署多台虚拟机


  • 资源隔离


  • 每个虚拟机都由独立分配的内存磁盘等硬件资源,通过Hypervisor分配。


  • 易扩展


  • 随时随地都能在一个物理机上开出新的虚拟机


  • 成本较低


缺点:


  • VM需安装操作系统


3、容器化


虚拟化是物理硬件的隔离,容器化是app层面的隔离。容器化是基于虚拟机基础上做的资源隔离。Docker 容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的。


Docker:容器化技术的一种具体实现。


微信图片_20220607205119.png

容器化服务器架构

这样的特点是:


  • 更高效的利用系统资源


  • 更快速的启动时间


  • 启动、停止可控制在秒级别


  • 一致的运行环境


  • 开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现这类问题。


  • 持续交付和部署


  • 更轻松的迁移、维护和扩展


  • 通过Dockerfile配置文件来支持灵活的自动化创建和部署机制,提高效率。


什么是Docker?


Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。


微信图片_20220607205123.png

Docker容器架构

Docker 包括三个基本概念:


  • 镜像(Images):Docker 容器运行时的只读模板,每一个镜像由一系列的层 (layers) 组成。


  • 容器(Containers):和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。


  • 仓库(Repositories):用来保存镜像,可以理解为代码控制中的代码仓库。

Docker Daemon 是Docker的守护进程,Docker Client通过命令行与其通信,完成Docker的相关操作。


Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器;


Docker 容器通过 Docker 镜像来创建;


容器与镜像的关系类似于面向对象编程中的对象与类。


Docker Hello World


我们使用Docker来测试一下HelloWorld(由于安装过程不同系统存在差异,自行baidu即可~)。


step1:通过输入docker pull hello-world来拉取镜像

[root@web1 overlay2]:~$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete 
Digest: sha256:49a1c8800c94df04e9658809b006fd8a686cab8028d33cfba2cc049724254202
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest


step2:从仓库拉取到了HelloWorld的镜像

[root@web1 overlay2]:~$ docker images
REPOSITORY     TAG      IMAGE ID       CREATED      SIZE
hello-world  latest   bf756fb1ae65   6 months ago   13.3kB

step3:我们来运行一下,通过docker run hello-world

[root@web1 overlay2]:~$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/
For more examples and ideas, visit:
 https://docs.docker.com/get-started/

如出现上图的内容,则说明hello-world测试运行成功。


总结


本文主要就服务器的历史演变过程介绍了Docker的新特性,以及扩展介绍了Docker的架构设计及简单上手应用。Docker的功能和特性还有很多,各种运行命令、参数等也都有待学习和练习,比如如何管理数据、如何管理网络、如何互相配合工作、如何编写更专业的Dockerfile等。本文先入门科普为主,以后有时间再慢慢更新关于Docker的知识。

相关文章
|
9天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3139 8
|
12天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3199 20
|
1天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队版、Coding Plan或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
|
5天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
2135 3
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
|
24天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23591 15
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
11天前
|
人工智能 JSON BI
DeepSeek V4-Pro 接入 Claude Code 完全实战:体验、测试与关键避坑指南
Claude Code 作为当前主流的 AI 编程辅助工具,凭借强大的代码理解、工程执行与自动化能力深受开发者喜爱,但原生模型的使用成本相对较高。为了在保持能力的同时进一步降低开销,不少开发者开始寻找兼容度高、价格更友好的替代模型。DeepSeek V4 系列的发布带来了新的选择,该系列包含 V4-Pro 与 V4-Flash 两款模型,并提供了与 Anthropic 完全兼容的 API 接口,理论上只需简单修改配置,即可让 Claude Code 无缝切换为 DeepSeek 引擎。
2649 3
|
3天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全+三种模式+记忆体系+实战工作流完整手册
Claude Code 是当前最流行的终端级 AI 编程助手,能够直接在命令行中完成代码生成、项目理解、文件修改、命令执行、错误修复等全流程开发工作。它不依赖图形界面、不占用额外资源,却能深度理解项目结构,自动生成规范代码,大幅提升研发效率。
772 2
|
10天前
|
人工智能 安全 开发工具
Claude Code 官方工作原理与使用指南
Claude Code 不是传统代码补全工具,而是 Anthropic 推出的终端 AI 代理,具备代理循环、双驱动架构(模型+工具)、全局项目感知、6 种权限模式等核心能力,本文基于官方文档系统解析其工作原理与高效使用技巧。
1444 0

热门文章

最新文章