从零到全栈:2025 年 Docker 实战指南与常用命令速查
Docker 简介
Docker + AI 2025:生成式大模型如何颠覆容器化工作流
Docker 是一种开源的 容器化平台,它通过 轻量级、可移植、可自给自足的容器 来封装应用及其运行环境,实现“一次构建、处处运行”。与传统的虚拟机相比,Docker 共享宿主机的操作系统内核,仅在用户空间隔离进程,因而启动速度快、资源开销小。
核心概念
概念 | 说明 |
---|---|
镜像(Image) | 只读的文件系统层叠结构,包含应用代码、运行时、库和依赖。通过 Dockerfile 定义构建步骤。 |
容器(Container) | 镜像的运行实例,拥有独立的进程空间、网络、文件系统(可写层)等。容器之间相互隔离。 |
Dockerfile | 用于声明式描述镜像构建过程的脚本文件,支持指令如 FROM、RUN、COPY、EXPOSE、CMD 等。 |
仓库(Registry) | 存放和分发镜像的中心,常用的有 Docker Hub、阿里云容器镜像服务、私有仓库等。 |
Docker Engine | Docker 的核心守护进程(dockerd )和客户端(docker ),负责镜像管理、容器生命周期等操作。 |
Docker Compose | 用 YAML 文件定义多容器应用的服务、网络、卷等,使用 docker-compose up 一键启动完整环境。 |
主要优势
- 快速交付:一次构建的镜像可在任意支持 Docker 的机器上直接运行,极大缩短部署周期。
- 环境一致性:开发、测试、生产环境使用相同镜像,避免“在我机器上可以运行”的问题。
- 资源高效:容器共享宿主机内核,启动时间通常在秒级,CPU、内存占用远低于传统虚拟机。
- 易于扩展:配合编排工具(如 Kubernetes、Docker Swarm)可实现弹性伸缩、负载均衡和自愈。
- 可移植性:镜像遵循 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 Compose | docker-compose up -d | 启动 compose 定义的多容器应用(后台)[[22]] |
docker-compose down | 停止并移除 compose 创建的容器、网络、卷 | |
docker-compose logs -f | 实时查看 compose 服务日志 |
以上命令覆盖了 服务管理、系统信息、镜像操作、容器生命周期、网络/卷管理、资源清理 以及 Docker‑Compose 常用场景,基本满足日常开发、测试与运维需求。
打赏: 微信
请不要在 B站、小红书、微信公众号、抖音、今日头条或其他中国大陆社交平台发布视频或文章宣传本项目;
不授权任何“科技周刊/月刊”类项目或站点收录本项目。