什么是 Docker?
Docker 是一个容器化平台,可以把应用和它的依赖打包成一个轻量、可移植的容器,然后在任何 Linux 机器上运行。
为什么用 Docker?
- 🚀 环境一致:开发、测试、生产环境完全一样
- 📦 快速部署:一条命令启动服务
- 🔄 易于迁移:在哪都能跑,不依赖系统环境
- 🗑️ 干净清爽:删掉容器就是完全卸载,不留垃圾
- 📊 隔离性好:各个服务互不影响
容器 vs 虚拟机
| 特性 | 容器 | 虚拟机 |
|---|---|---|
| 启动速度 | 秒级 | 分钟级 |
| 资源占用 | MB 级 | GB 级 |
| 隔离性 | 进程级隔离 | 完全隔离 |
| 数量 | 单机可跑几百个 | 十几个 |
安装 Docker
Ubuntu/Debian
| |
验证安装:
| |
基础命令
镜像相关
| |
容器相关
| |
清理命令
| |
Docker Compose
Compose 是用来管理多容器应用的工具,用 YAML 文件定义,一条命令启动所有服务。
安装
| |
docker-compose.yml 示例
| |
常用命令
| |
数据持久化
Docker 容器内的数据是临时的,删除容器数据就没了。持久化有两种方式:
1. 数据卷(推荐)
| |
2. 挂载主机目录
| |
网络
Docker 有几种网络模式,最常用的是 bridge 自定义网络。
创建自定义网络
| |
同一个网络里的容器可以通过容器名互相访问,不用 IP。
实战:部署一个 WordPress
| |
启动:
| |
访问 http://服务器IP:8080 就能看到 WordPress 安装界面了。
Dockerfile 写镜像
基础示例
| |
构建镜像
| |
多阶段构建(优化镜像大小)
| |
前端项目用多阶段构建,镜像可以从几百 MB 降到几 MB。
常用服务部署清单
小服务器最常用的 Docker 一键部署服务:
| |
排错技巧
容器启动不了?
| |
端口被占用?
| |
镜像拉取慢?
配置国内镜像加速器:
| |
总结
Docker 是现代运维的必备技能,入门不难,掌握常用命令和 compose 就能应对大部分部署需求。
学习路径建议:
- 基础命令(run/ps/logs/exec/rm)
- Docker Compose
- 数据卷和网络
- Dockerfile 写镜像
- 进阶:Docker Swarm / Kubernetes
容器化部署,一次构建,到处运行 🐳
