Docker 完全指南:从入门到精通(2026最新版)
什么是 Docker?
Docker 是一个开源的容器化平台,让开发者可以将应用及其依赖打包成轻量级的容器。容器比传统虚拟机更轻量、启动更快、移植性更强。
为什么需要 Docker?
- 环境一致性 - 开发、测试、生产环境完全一致
- 快速部署 - 秒级启动容器
- 资源隔离 - 容器之间相互隔离
- 微服务架构 - 天然支持微服务
Docker 核心概念
1. 镜像(Image)
镜像是一个只读模板,用于创建容器。可以理解为"类的蓝图"。
# 查看镜像
docker images
# 拉取镜像
docker pull ubuntu:22.04
# 删除镜像
docker rmi ubuntu:22.04
2. 容器(Container)
容器是镜像的运行实例,可以理解为"类的实例"。
# 运行容器
docker run -it ubuntu:22.04 /bin/bash
# 后台运行容器
docker run -d -p 8080:80 nginx
# 查看运行中的容器
docker ps
# 查看所有容器
docker ps -a
# 停止容器
docker stop container_id
# 删除容器
docker rm container_id
3. 仓库(Repository)
存放镜像的地方,最常用的是 Docker Hub。
# 登录 Docker Hub
docker login
# 推送镜像到仓库
docker push myimage:latest
# 从仓库拉取镜像
docker pull myimage:latest
Dockerfile 最佳实践
Dockerfile 是构建镜像的脚本文件。
# 使用官方基础镜像
FROM node:18-alpine
# 设置工作目录
WORKDIR /app
# 复制依赖文件
COPY package*.json ./
# 安装依赖
RUN npm install
# 复制源代码
COPY . .
# 暴露端口
EXPOSE 3000
# 启动命令
CMD ["node", "server.js"]
Dockerfile 优化技巧
- 减少镜像层数 - 合并 RUN 指令
- 使用 .dockerignore - 排除不需要的文件
- 使用多阶段构建 - 减小最终镜像体积
- 按顺序放置指令 - 利用缓存
Docker Compose 编排多容器
Docker Compose 用于定义和运行多容器应用。
# docker-compose.yml
version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
depends_on:
- redis
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
volumes:
redis_data:
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 停止服务
docker-compose down
# 查看日志
docker-compose logs -f
数据卷管理
# 创建数据卷
docker volume create mydata
# 挂载数据卷
docker run -v mydata:/app/data nginx
# 绑定宿主机目录
docker run -v /host/path:/container/path nginx
网络配置
# 创建网络
docker network create mynetwork
# 运行容器并加入网络
docker run --network mynetwork -d nginx
# 查看网络详情
docker network inspect mynetwork
Docker 安全最佳实践
- 以非 root 用户运行容器
- 定期更新基础镜像
- 使用扫描工具检查漏洞
- 限制容器资源(CPU/内存)
- 不要在容器中存储敏感信息
常用 Docker 命令速查
| 命令 | 说明 |
|---|---|
| docker ps | 查看运行中的容器 |
| docker images | 查看镜像列表 |
| docker logs | 查看容器日志 |
| docker exec | 进入容器执行命令 |
| docker build | 构建镜像 |
| docker push | 推送镜像 |
| docker pull | 拉取镜像 |
总结
Docker 是现代 DevOps 的基础设施,掌握 Docker 是每个开发者和运维人员的必备技能。本文涵盖了 Docker 的核心概念、常用命令、最佳实践,希望对你有所帮助。
参考资源:Docker 官方文档
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。






