Docker 入门指南:为什么程序员都在用它?

Docker 入门指南:为什么程序员都在用它?
阿晖Docker 入门指南:为什么程序员都在用它?
很多刚接触后端或者部署的小伙伴,第一次听到 Docker 都会有一种感觉:
“这玩意是不是很复杂?”
实际上,Docker 真正火起来的原因只有一个:
它能让你的项目运行环境保持一致。
你本地能跑,服务器也能跑。
你朋友电脑能跑,生产环境也能跑。
不会再出现:
- “我这里明明是好的”
- “你是不是 Java 版本不对”
- “你数据库环境有问题”
- “你 Node 版本和我不一样”
这种经典互相甩锅现场。
一、Docker 到底是什么?
你可以把 Docker 理解成:
一个“轻量级虚拟机”。
但它和传统虚拟机不同:
| 对比 | Docker | 虚拟机 |
|---|---|---|
| 启动速度 | 秒级 | 分钟级 |
| 占用资源 | 很小 | 很大 |
| 环境隔离 | 有 | 有 |
| 是否方便部署 | 非常方便 | 一般 |
Docker 最大的核心价值:
环境一致性
比如:
你的项目需要:
- Java 21
- MySQL 8
- Redis 7
- Nginx
传统方式:
你需要一个个安装。
Docker:
直接运行别人写好的镜像即可。
二、Docker 的核心概念
1. 镜像(Image)
镜像可以理解成:
一个“系统模板”。
比如:
- MySQL 镜像
- Redis 镜像
- Ubuntu 镜像
2. 容器(Container)
容器是镜像运行后的实例。
你可以理解成:
- 镜像 = 安装包
- 容器 = 正在运行的软件
3. 仓库(Repository)
Docker 官方镜像仓库:
- Docker Hub
里面有大量现成环境。
比如:
1 | docker pull mysql |
就是从 Docker Hub 下载 MySQL。
三、安装 Docker
Windows
推荐直接安装:
- Docker Desktop
官网:
1 | https://www.docker.com/ |
安装完成后执行:
1 | docker -v |
出现版本号说明安装成功。
四、第一个 Docker 容器
运行一个 Ubuntu:
1 | docker run -it ubuntu bash |
解释:
| 参数 | 作用 |
|---|---|
| run | 创建并运行 |
| -it | 交互模式 |
| ubuntu | 镜像名 |
| bash | 启动 bash |
第一次运行会自动下载镜像。
进入后:
1 | ls |
你会发现:
已经进入一个全新的 Linux 环境。
退出:
1 | exit |
五、Docker 常用命令
查看运行中的容器
1 | docker ps |
查看所有容器
1 | docker ps -a |
查看镜像
1 | docker images |
删除容器
1 | docker rm 容器ID |
删除镜像
1 | docker rmi 镜像ID |
停止容器
1 | docker stop 容器ID |
启动容器
1 | docker start 容器ID |
六、真正有价值的地方:环境搭建
下面来一个真实开发案例。
七、案例:5 分钟搭建 MySQL 环境
以前:
安装 MySQL 非常折磨:
- 配环境变量
- 改密码
- 配编码
- 配端口
- 版本冲突
Docker:
一句命令解决。
拉取 MySQL 镜像
1 | docker pull mysql:8.0 |
启动 MySQL
1 | docker run -d \ |
参数解释:
| 参数 | 含义 |
|---|---|
| -d | 后台运行 |
| –name | 容器名字 |
| -p | 端口映射 |
| -e | 环境变量 |
查看是否运行成功
1 | docker ps |
出现:
1 | mysql8 |
说明成功。
进入 MySQL 容器
1 | docker exec -it mysql8 bash |
登录 MySQL:
1 | mysql -uroot -p |
输入密码:
1 | 123456 |
完成。
八、为什么 Docker 特别适合开发?
1. 一键搭环境
以前:
新电脑配置环境可能半天。
现在:
1 | docker compose up |
全部自动完成。
2. 不污染系统
MySQL 坏了?
删容器重建即可。
不会污染电脑。
3. 多版本共存
比如:
你可以同时拥有:
- MySQL 5.7
- MySQL 8
- Redis 6
- Redis 7
互不影响。
九、Docker Compose 是什么?
如果项目需要:
- MySQL
- Redis
- Nginx
- Java 服务
一个个启动会很麻烦。
于是有了:
Docker Compose
它可以:
一键启动整个项目环境。
十、Compose 示例
创建:
1 | docker-compose.yml |
内容:
1 | version: '3' |
启动:
1 | docker compose up -d |
停止:
1 | docker compose down |
这时候:
- MySQL
- Redis
会同时启动。
这就是现代开发环境的主流方式。
十一、Docker 的实际应用场景
Docker 几乎已经覆盖整个开发领域:
| 场景 | 用途 |
|---|---|
| 后端开发 | Java、Python、Go |
| 前端部署 | Nginx |
| 数据库 | MySQL、Redis |
| AI | 模型部署 |
| 运维 | 自动化部署 |
| 微服务 | Kubernetes |
现在很多公司:
甚至要求开发必须会 Docker。
十二、学习建议
Docker 不建议死记命令。
最好的学习方式:
一边搭环境一边学
比如:
- 搭 MySQL
- 搭 Redis
- 搭 Nginx
- 搭博客
- 搭 AI 服务
慢慢你就会发现:
Docker 本质上是在:
“标准化部署环境”。
十三、总结
Docker 最核心的价值:
“环境一致”
它解决了开发中最经典的问题:
“为什么你电脑能跑,我这里不行?”
学会 Docker 后:
你会发现:
搭环境开始变得像“拼积木”。
常用命令速查表
1 | # 查看版本 |
结尾
如果你以前觉得:
“搭环境特别痛苦”
那 Docker 很可能会改变你的开发体验。
因为它真正做到了一件事:
“让环境变成可复制的东西”
这也是它能成为现代开发基础设施的原因。










