Docker

一、Docker 是什么

Docker是一种"容器化(Containerization)平台"。

它的核心作用:

把应用程序 + 运行环境 + 依赖库 打包到一个容器里,然后在任何机器上稳定运行。

你可以把 Docker 理解成:

VM(虚拟机)的轻量版

程序运行的"标准集装箱"

"一次打包,到处运行"

二、为什么会有 Docker

先看传统开发的问题。

1. 环境不一致问题

比如:

你开发了一个 C++ 后端程序:

本地 Ubuntu 20 能跑

测试服务器 Ubuntu 22 崩了

同事电脑缺少某个库

Python 版本不一致

OpenSSL 版本不同

于是经典问题出现:

"我电脑上是好的啊!"

Docker 就是解决:

"环境一致性"

三、Docker 的核心思想

Docker 的思想非常简单:

把程序运行所需的一切:

代码

库

配置

运行环境

系统工具

全部打包。

形成:

Container(容器)

容器启动后:

无论在哪台机器:

云服务器

公司服务器

个人电脑

测试环境

结果都一样。

四、Docker 和虚拟机区别

虚拟机:

每个 VM 都有:

自己的操作系统

内核

驱动

非常重

例如:

一个 Ubuntu VM:

几 GB

启动几十秒

Docker 容器:

共享宿主机内核

不需要完整 OS

非常轻量

特点:

MB 级别

秒级启动

可同时运行大量容器

五、Docker架构

Docker 采用客户端-服务器架构。Docker 客户端与 Docker 守护进程,负责构建、运行和 分发你的 Docker 容器。Docker 客户端和守护进程可以 运行在同一台系统上,或者你可以将 Docker 客户端连接到远程 Docker 戴蒙。Docker 客户端和守护进程通过 REST API 在 UNIX 上通信 套接字或网络接口。另一个 Docker 客户端是 Docker Compose, 这样你就能处理由一组容器组成的应用程序。

六、Docker的核心组成

名称 类比
Image(镜像) 安装包
Container(容器) 正在运行的软件
Repository(仓库) 应用商店

七、Image(镜像)

镜像:

是一个只读模板

里面包含:

程序

环境

依赖

例如:

Ubuntu 镜像

MySQL 镜像

Redis 镜像

Nginx 镜像

你可以理解:

镜像 = 类(class)

容器 = 对象(object)

查看镜像

docker images

拉取镜像

例如:

docker pull ubuntu

意思:

从 Docker Hub 下载 Ubuntu 镜像。

八、Container(容器)

容器:

是镜像运行后的实例

例如:

docker run ubuntu

会:

创建容器

启动容器

查看容器

docker ps

查看运行中的容器

docker ps -a

查看所有容器

九、Docker 的底层原理

这是核心。

Docker 本质上:

不是虚拟机

它依赖 Linux 内核特性:

1. Namespace(命名空间)

作用:

隔离

让容器觉得:

自己有独立进程

独立网络

独立文件系统

实际上:

只是 Linux 隔离机制。

2. Cgroups

作用:

资源限制

限制容器:

CPU

内存

IO

例如:

docker run -m 512m ubuntu

限制最大内存:

512MB。

3. UnionFS(联合文件系统)

Docker 镜像是:

分层的

例如:

Ubuntu层

Python层

依赖层

代码层

优点:

节省空间

复用层

增量更新

相关推荐
知已难寻8 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
xbzb13 小时前
镜像到底存在哪:/var/lib/docker 的四级映射与 daemon.json 配置
docker·容器·json·镜像·daemon.json·四级
方便面不加香菜20 小时前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
江湖有缘21 小时前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚21 小时前
mall 电商项目完整部署---实战
linux·运维·docker·容器
我不会起名字3222 天前
K8s Pod 反复重启 CrashLoopBackOff:从 exit code 到根因的 5 步排查
云原生·容器·kubernetes·k8s
瑞克-桑切斯2 天前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka
瑞克-桑切斯2 天前
docker mail商城
运维·docker·容器
java_logo2 天前
Docker 部署 ReMe:轻松搭建 AI Agent 记忆管理平台
人工智能·docker·容器·ai agent·轩辕镜像·reme·agentscope-ai
不庸.2 天前
WPScan 实战入门:从 Docker 靶场到弱密码爆破
运维·安全·web安全·docker·容器·安全性测试·wpscan