Docker Cheat Sheet 技术速查手册:从入门到精通
docker-cheat-sheet Docker Cheat Sheet 项目地址: https://gitcode.com/gh_mirrors/do/docker-cheat-sheet
前言
Docker 作为当前最流行的容器化技术,已经成为开发者和运维人员必备的技能之一。本文将基于 Docker Cheat Sheet 项目,系统性地介绍 Docker 的核心概念、常用命令和最佳实践,帮助读者快速掌握 Docker 技术栈。
Docker 基础概念
容器与虚拟机的区别
Docker 容器与传统虚拟机有着本质区别:
- 轻量级:容器共享主机操作系统内核,不需要为每个容器加载完整的操作系统
- 快速启动:容器可以在毫秒级别启动,而虚拟机通常需要数秒
- 高效资源利用:容器对系统资源的消耗远低于虚拟机
- 可移植性:容器可以在任何支持 Docker 的环境中运行,保证环境一致性
Docker 核心组件
- Docker 引擎:核心组件,负责创建和运行容器
- 镜像(Images):只读模板,用于创建容器
- 容器(Containers):镜像的运行实例
- 仓库(Registry):存储和分发镜像的服务
安装与配置
各平台安装指南
Linux 系统
# 使用官方脚本快速安装
curl -sSL https://get.docker.com/ | sh
# 验证安装
sudo docker run hello-world
macOS 系统
推荐使用 Docker Desktop for Mac,它提供了图形界面和完整的 Docker 环境。
Windows 系统
Windows 10/11 专业版和企业版支持 Docker Desktop for Windows,需要启用 Hyper-V 功能。
版本检查
# 查看 Docker 版本信息
docker version
# 仅查看服务端版本
docker version --format '{{.Server.Version}}'
容器操作
容器生命周期管理
| 命令 | 功能描述 | |------|----------| | docker create
| 创建但不启动容器 | | docker run
| 创建并启动容器 | | docker start
| 启动已停止的容器 | | docker stop
| 停止运行中的容器 | | docker restart
| 重启容器 | | docker pause
| 暂停容器 | | docker unpause
| 恢复暂停的容器 | | docker rm
| 删除容器 |
实用操作示例
# 运行一个交互式容器
docker run -it ubuntu /bin/bash
# 运行容器并在退出后自动删除
docker run --rm alpine echo "Hello World"
# 后台运行容器
docker run -d nginx
# 查看运行中的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
镜像管理
镜像基本操作
| 命令 | 功能描述 | |------|----------| | docker images
| 列出本地镜像 | | docker pull
| 从仓库拉取镜像 | | docker build
| 通过 Dockerfile 构建镜像 | | docker rmi
| 删除镜像 | | docker tag
| 为镜像打标签 |
镜像构建与分发
# 从 Dockerfile 构建镜像
docker build -t my-image:1.0 .
# 将镜像保存为 tar 文件
docker save my-image:1.0 > my-image.tar
# 从 tar 文件加载镜像
docker load < my-image.tar
网络与存储
网络配置
# 创建自定义网络
docker network create my-network
# 将容器连接到指定网络
docker run --network=my-network my-image
数据卷管理
# 创建命名卷
docker volume create my-volume
# 挂载卷到容器
docker run -v my-volume:/data my-image
# 挂载主机目录
docker run -v /host/path:/container/path my-image
Dockerfile 最佳实践
编写高效的 Dockerfile 需要注意以下几点:
- 使用官方基础镜像:优先选择官方维护的基础镜像
- 多阶段构建:减少最终镜像大小
- 合理排序指令:将变化频率低的指令放在前面
- 最小化层数:合并相关命令减少镜像层数
- 清理无用文件:构建过程中产生的临时文件应及时删除
示例 Dockerfile:
# 多阶段构建示例
FROM golang:1.16 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/myapp .
CMD ["./myapp"]
安全建议
- 避免使用 root 用户:在容器内创建非特权用户
- 限制资源使用:设置 CPU 和内存限制
- 定期更新镜像:使用最新安全补丁
- 扫描风险:使用
docker scan
检查镜像潜在问题 - 最小权限原则:仅授予容器必要的权限
# 设置资源限制
docker run -it --cpus=".5" --memory="512m" ubuntu
# 扫描镜像风险
docker scan my-image:1.0
高级技巧
容器调试
# 进入运行中的容器
docker exec -it container_id /bin/bash
# 查看容器日志
docker logs -f container_id
# 检查容器详细信息
docker inspect container_id
性能监控
# 查看容器资源使用情况
docker stats
# 查看容器内进程
docker top container_id
总结
本文涵盖了 Docker 的核心概念和常用操作,从基础安装到高级用法,为开发者提供了全面的参考指南。掌握这些知识后,读者应能够:
- 熟练使用 Docker 管理容器和镜像
- 编写高效的 Dockerfile
- 配置容器网络和存储
- 实施基本的安全措施
- 进行容器调试和性能监控
Docker 技术生态仍在不断发展,建议读者持续关注官方文档和社区动态,以获取最新的最佳实践和技术更新。
docker-cheat-sheet Docker Cheat Sheet 项目地址: https://gitcode.com/gh_mirrors/do/docker-cheat-sheet
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考