Docker 基础

一、Docker核心概念

  • 定义:开源的应用容器引擎,基于LXC(Linux Container)实现,使用Go语言开发。

  • 核心机制

    • 沙盒机制:容器之间完全隔离,无接口交互。

    • namespace:实现用户实例间的隔离。

    • cgroup:对CPU、内存等物理资源进行配额和调度。

  • 三大基本概念

    • 镜像(Image):只读的root文件系统,类似于类。

    • 容器(Container):镜像运行的实例,类似于对象。

    • 仓库(Repository):存储镜像的地方(如Docker Hub)。

二、Docker vs 虚拟机

特性 Docker容器 传统虚拟机
抽象层 少(无Hypervisor) 多(含Hypervisor)
资源利用率 高(直接使用物理机硬件) 低(需模拟硬件)
启动速度 秒级 分钟级
尺寸 小(仅应用+依赖) 大(含完整OS)

三、Docker版本演进要点

  • 初创期(1.0):从LXC转向libcontainer,建立分层存储。

  • 成长期(1.12):内置Swarm集群、服务发现、TLS加密。

  • 成熟期(17.03+):CE/EE分化,支持ARM,引入BuildKit。

  • 现代期:深度集成Kubernetes,Rootless模式,GPU支持,BuildKit默认。

四、安装与配置

安装方式

  • 自动安装curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

  • 手动安装(Rocky/CentOS)

    bash

    复制代码
    yum install -y yum-utils
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum install -y docker-ce
  • 启动验证systemctl start dockerdocker run hello-world

镜像加速(配置 /etc/docker/daemon.json

json

复制代码
{
  "registry-mirrors": ["https://your-mirror.aliyuncs.com", "https://docker.m.daocloud.io"]
}
  • 修改后需执行:systemctl daemon-reload && systemctl restart docker

五、重要配置项(daemon.json)

字段 作用 示例
data-root 数据存储路径 "/mnt/docker-data"
log-driver / log-opts 日志驱动及限制 "json-file", {"max-size":"10m"}
storage-driver 存储驱动 "overlay2"
insecure-registries 允许非HTTPS私有仓库 ["myregistry.local:5000"]
live-restore 守护进程重启时保持容器运行 true
features.buildkit 启用BuildKit true

六、Docker适用场景与局限性

  • 适用:Web应用打包发布、自动化测试、持续集成、PaaS环境搭建。

  • 局限 :不存储数据(日志、数据库等应挂载外部存储,如NFS、Ceph或-v映射)。

七、架构模式

  • C/S架构:客户端(CLI/API)与守护进程(dockerd)通信,守护进程负责创建、运行容器。

  • 组件:镜像、容器、仓库、主机、Registry、Machine。

相关推荐
papaofdoudou3 小时前
AMD-V 嵌套分页白皮书翻译
java·linux·服务器
篱笆院的狗3 小时前
未备案域名申请SSL证书
linux
李日灐3 小时前
<1>Linux基础指令:Linux 高频指令详解 + 文件与目录认知
linux·运维·服务器·开发语言·后端·命令
色空大师3 小时前
【Linux-安装nginx】
linux·运维·前端·nginx·部署
艾莉丝努力练剑3 小时前
【Linux线程】Linux系统多线程(七):<线程同步与互斥>线程同步(下)
java·linux·运维·服务器·c++·学习·操作系统
zzzyyy5383 小时前
Linux进程控制(1)
linux·运维·服务器
俺不要写代码3 小时前
Linux上一个简单的echo服务器搭建
linux·运维·服务器
努力努力再努力wz3 小时前
【MySQL入门系列】:不只是建表:MySQL 表约束与 DDL 执行机制全解析
android·linux·服务器·数据结构·数据库·c++·mysql
信创DevOps先锋3 小时前
企业级开源治理新选择:Gitee CodePecker SCA如何重塑软件供应链安全
安全·gitee·开源