专业全栈开发服务 | 前端 + 后端 + 移动端 + 小程序等 | 高质量项目定制开发

Weber 博客

分享知识,记录思考

Docker 概念篇

2025年7月28日
Docker
阅读6分钟

一、Docker 作用

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

Docker 就是让你的应用"一次打包,到处运行"的神器!

二、Docker 基础概念

Docker 包括三个基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

理解了这三个概念,就理解了 Docker 的整个生命周期。

三、Image 镜像

Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。

让我用最简单的方式来解释 Docker 镜像

镜像就像"制作蛋糕的配方"

Docker镜像 = 蛋糕配方书
- 里面写清楚了:
  - 需要什么材料(面粉、鸡蛋、糖...)
  - 每一步怎么做(先搅拌、再烘烤...)
  - 最终做成什么样

镜像的实际内容

# 这就像配方书的步骤:
FROM ubuntu:20.04        # 基础材料:Ubuntu系统
RUN apt-get update       # 步骤1:更新系统
RUN apt-get install nginx # 步骤2:安装nginx软件
COPY ./website /var/www  # 步骤3:复制网站文件
CMD ["nginx", "-g", "daemon off;"]  # 最后:启动服务

Docker镜像就是一个"制作说明书",告诉你如何创建一个运行环境。它本身不能运行,但可以用来创建多个完全相同的运行实例(容器)。

四、Container 容器

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

容器,我们可以简单理解为:电脑上的应用

一个容器 = 完整的应用 + 独立的运行环境

网站容器:网站功能 + 独立的软件环境
数据库容器:存储数据 + 独立的数据库环境
两个容器互不干扰,在同一台服务器上运行

五、Repository 仓库

Registry 是一个用于存储和分发 Docker 镜像的服务 。您可以把它想象成一个代码仓库(比如 GitHub),但它专门用来存放 Docker 镜像,而不是代码

Registry 的主要作用

  1. 集中存储镜像 :当您创建了一个 Docker 镜像后,可以将其推送到 Registry,方便团队成员或其他用户下载和使用。 
  2. 版本控制 :您可以为一个镜像推送多个版本(通过标签 tag 来区分),实现对镜像的版本管理。
  3. 分发与协作 :通过 Registry,可以轻松地将镜像从开发环境分享到测试环境和生产环境,简化部署流程。 
  4. 访问控制与安全 :特别是私有 Registry,可以提供更强的安全性和访问控制,确保只有授权用户才能访问您的镜像。

Registry 的类型

  • 公共 Registry :最著名的就是 Docker Hub 。它是 Docker 官方的公共仓库,包含了海量的官方和用户上传的镜像。默认情况下,当您执行 docker pull 或 docker run 命令时,Docker 会从 Docker Hub 拉取镜像。
  • 私有 Registry :出于安全、网络速度或合规性等原因,许多公司或个人会搭建自己的私有 Registry。您可以使用 Docker 官方提供的 registry 镜像轻松地在自己的服务器上搭建一个私有仓库。

 

订阅博客更新

喜欢这篇文章吗?订阅我们的博客,第一时间获取最新文章和技术分享

我们承诺不会发送垃圾邮件,您可以随时取消订阅

文章评论

发表评论

全部评论 (0)

加载评论中...