28.png

Docker 简介

Docker + AI 2025:生成式大模型如何颠覆容器化工作流
Docker 是一种开源的 容器化平台,它通过 轻量级、可移植、可自给自足的容器 来封装应用及其运行环境,实现“一次构建、处处运行”。与传统的虚拟机相比,Docker 共享宿主机的操作系统内核,仅在用户空间隔离进程,因而启动速度快、资源开销小。

核心概念

概念说明
镜像(Image)只读的文件系统层叠结构,包含应用代码、运行时、库和依赖。通过 Dockerfile 定义构建步骤。
容器(Container)镜像的运行实例,拥有独立的进程空间、网络、文件系统(可写层)等。容器之间相互隔离。
Dockerfile用于声明式描述镜像构建过程的脚本文件,支持指令如 FROM、RUN、COPY、EXPOSE、CMD 等。
仓库(Registry)存放和分发镜像的中心,常用的有 Docker Hub、阿里云容器镜像服务、私有仓库等。
Docker EngineDocker 的核心守护进程(dockerd)和客户端(docker),负责镜像管理、容器生命周期等操作。
Docker Compose用 YAML 文件定义多容器应用的服务、网络、卷等,使用 docker-compose up 一键启动完整环境。

主要优势

  1. 快速交付:一次构建的镜像可在任意支持 Docker 的机器上直接运行,极大缩短部署周期。
  2. 环境一致性:开发、测试、生产环境使用相同镜像,避免“在我机器上可以运行”的问题。
  3. 资源高效:容器共享宿主机内核,启动时间通常在秒级,CPU、内存占用远低于传统虚拟机。
  4. 易于扩展:配合编排工具(如 Kubernetes、Docker Swarm)可实现弹性伸缩、负载均衡和自愈。
  5. 可移植性:镜像遵循 OCI(Open Container Initiative)标准,可在不同云平台或本地数据中心自由迁移。

典型使用场景

  • 微服务架构:每个微服务独立打包为容器,便于独立部署、升级和回滚。
  • 持续集成/持续交付(CI/CD):在流水线中使用 Docker 镜像进行构建、测试、发布,实现全流程自动化。
  • 开发环境即代码:开发者通过 docker-compose 启动完整的依赖栈(数据库、缓存、消息队列等),无需在本机手动安装。
  • 多租户隔离:在同一台服务器上运行多个相互隔离的业务实例,提高资源利用率。

发展历程(简要)

  • 2013 年:Docker 作为开源项目发布,基于 LXC 实现容器化。
  • 2014 年:Docker 1.0 正式版,推出 Docker Hub 镜像仓库。
  • 2015–2017 年:引入 Docker Swarm 编排、Docker Compose 多容器管理,生态快速扩张。
  • 2017 年:Docker 引入 Moby 项目,拆分核心引擎与上层工具。
  • 2020 年以后:容器技术逐渐向 Kubernetes 主导的云原生生态迁移,Docker 仍是本地开发和镜像构建的首选工具。

Docker 已成为现代软件交付的基石,帮助企业实现 快速迭代、弹性伸缩、跨平台部署,在 DevOps 与云原生时代发挥着关键作用。
常用 Docker 命令速查(中文说明)

类别命令功能简述
系统服务systemctl start docker启动 Docker 守护进程[[1]]
systemctl stop docker停止 Docker 守护进程[[2]]
systemctl restart docker重启 Docker 服务[[3]]
systemctl status docker查看 Docker 服务状态[[4]]
基本信息docker --version查看 Docker 版本[[5]]
docker info查看系统概览(容器、镜像、存储驱动等)[[6]]
docker version同时显示客户端/服务端版本信息[[7]]
镜像管理docker pull <image[:tag]>从仓库拉取镜像(如 docker pull ubuntu)[[8]]
docker images列出本地所有镜像[[9]]
docker build -t <name> .根据当前目录的 Dockerfile 构建镜像[[10]]
docker push <repo>/<image[:tag]>推送镜像到远程仓库[[11]]
docker rmi <imageID>删除本地镜像[[12]]
docker save -o <file>.tar <image>导出镜像为 tar 包(离线保存)
docker load -i <file>.tar导入 tar 包中的镜像
容器管理docker run [options] <image>基于镜像启动容器(常用 -d 后台、-p 端口映射、--name 命名)[[13]]
docker ps查看运行中的容器[[14]]
docker ps -a查看所有容器(包括已停止)[[15]]
docker stop <containerID>停止运行中的容器[[16]]
docker start <containerID>启动已停止的容器
docker restart <containerID>重启容器
docker rm <containerID>删除已停止的容器[[17]]
docker exec -it <containerID> /bin/bash进入容器交互式终端[[18]]
docker logs <containerID>查看容器日志[[19]]
docker commit <containerID> <newImage>将容器快照保存为新镜像
网络docker network ls列出所有 Docker 网络[[20]]
docker network create <name>创建自定义网络
docker network rm <name>删除网络
数据卷docker volume ls列出卷
docker volume create <name>创建卷
docker volume rm <name>删除卷
清理docker system prune -a删除未使用的容器、网络、镜像、卷(一次性清理)[[21]]
docker image prune删除悬挂的镜像
docker container prune删除已停止的容器
Docker Composedocker-compose up -d启动 compose 定义的多容器应用(后台)[[22]]
docker-compose down停止并移除 compose 创建的容器、网络、卷
docker-compose logs -f实时查看 compose 服务日志
以上命令覆盖了 服务管理、系统信息、镜像操作、容器生命周期、网络/卷管理、资源清理 以及 Docker‑Compose 常用场景,基本满足日常开发、测试与运维需求。