Docker 速查手册:从入门到精通的容器化指南
前言
Docker 作为当今最流行的容器化技术,已经彻底改变了应用程序的开发、交付和运行方式。本手册将系统性地介绍 Docker 的核心概念、常用命令和最佳实践,帮助开发者快速掌握这一强大工具。
Docker 基础概念
什么是 Docker?
Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖打包成轻量级、可移植的容器。这些容器可以在任何支持 Docker 的环境中运行,确保了环境一致性。
容器与虚拟机的区别
容器与传统虚拟机(VM)的主要区别在于:
- 轻量级:容器共享主机操作系统内核,无需完整的操作系统
- 快速启动:容器可以在毫秒级别启动
- 高效资源利用:容器占用资源更少,密度更高
- 一致性:开发、测试和生产环境完全一致
安装与配置
系统要求
- Linux:内核版本3.10或更高
- macOS:10.8 "Mountain Lion"或更新版本
- Windows:Windows 10专业版/企业版或Windows Server 2016+
安装方法
Linux系统
curl -fsSL https://get.docker.com | sh
macOS系统
推荐使用Docker Desktop for Mac,可通过Homebrew安装:
brew install --cask docker
Windows系统
安装Docker Desktop for Windows,需确保:
- 启用Hyper-V功能
- 对于Intel处理器,启用虚拟化技术
容器操作指南
容器生命周期管理
-
创建容器:
docker create [OPTIONS] IMAGE [COMMAND] [ARG...] -
启动容器:
docker start [OPTIONS] CONTAINER -
运行容器(创建+启动):
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -
停止容器:
docker stop [OPTIONS] CONTAINER -
删除容器:
docker rm [OPTIONS] CONTAINER
常用运行选项
-d:后台运行(守护模式)-it:交互式终端--name:指定容器名称--rm:容器退出后自动删除-v:挂载数据卷-p:端口映射
容器监控与调试
-
查看运行中的容器:
docker ps -
查看所有容器(包括已停止的):
docker ps -a -
查看容器日志:
docker logs [OPTIONS] CONTAINER -
进入运行中的容器:
docker exec -it CONTAINER /bin/bash -
查看容器资源使用:
docker stats
镜像管理
镜像基本操作
-
列出本地镜像:
docker images -
拉取镜像:
docker pull [OPTIONS] NAME[:TAG] -
构建镜像:
docker build [OPTIONS] PATH -
删除镜像:
docker rmi [OPTIONS] IMAGE
镜像导入导出
-
导出镜像为tar文件:
docker save -o filename.tar IMAGE -
从tar文件导入镜像:
docker load -i filename.tar
网络与存储
网络配置
-
列出网络:
docker network ls -
创建网络:
docker network create [OPTIONS] NETWORK -
连接容器到网络:
docker network connect [OPTIONS] NETWORK CONTAINER
数据管理
-
创建数据卷:
docker volume create [OPTIONS] VOLUME -
挂载主机目录:
docker run -v /host/path:/container/path IMAGE -
使用命名卷:
docker run -v volume_name:/container/path IMAGE
Dockerfile最佳实践
基础指令
- FROM:指定基础镜像
- RUN:执行命令
- COPY/ADD:添加文件
- CMD/ENTRYPOINT:指定容器启动命令
- ENV:设置环境变量
- EXPOSE:声明暴露端口
优化建议
- 使用
.dockerignore文件排除不必要的文件 - 多阶段构建减少镜像大小
- 合并RUN指令减少镜像层数
- 使用特定标签而非latest
- 最小化镜像(如使用Alpine基础镜像)
Docker Compose
Docker Compose用于定义和运行多容器应用。
基本命令
-
启动服务:
docker-compose up -
后台启动:
docker-compose up -d -
停止服务:
docker-compose down -
查看服务状态:
docker-compose ps
Compose文件示例
version: '3'
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: postgres:13
environment:
POSTGRES_PASSWORD: example
安全最佳实践
- 避免使用root用户运行容器
- 定期更新基础镜像
- 扫描镜像中的问题
- 限制容器资源使用
- 使用只读文件系统
- 限制容器能力
常见问题排查
-
容器无法启动:
- 检查日志:
docker logs CONTAINER - 检查端口冲突
- 验证环境变量
- 检查日志:
-
磁盘空间不足:
- 清理无用镜像:
docker system prune - 清理无用卷:
docker volume prune
- 清理无用镜像:
-
网络连接问题:
- 检查网络配置:
docker network inspect NETWORK - 验证DNS设置
- 检查网络配置:
高级技巧
-
资源限制:
docker run -m 512m --cpus=1.5 IMAGE -
GPU支持:
docker run --gpus all IMAGE -
构建缓存管理:
docker build --no-cache -t IMAGE . -
多平台构建:
docker buildx build --platform linux/amd64,linux/arm64 -t IMAGE .
结语
本手册涵盖了Docker的核心功能和常用操作,适合从入门到进阶的学习参考。随着Docker生态系统的不断发展,建议定期查阅官方文档获取最新信息。通过实践这些命令和最佳实践,您将能够高效地使用Docker来简化和优化您的开发工作流程。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



