Docker 概览 & Docker 命令总结
一、Docker 基础概念与原理
什么是 Docker?
Docker 是一个开源的容器平台,用于打包、分发和运行应用程序及其所有依赖项。
- 把应用、运行环境、依赖打包成一个“镜像”
 
- 运行镜像就生成一个“容器”,容器彼此隔离,不影响宿主机
 
核心概念:
| 名称 | 
说明 | 
| 镜像 Image | 
应用 + 环境的静态模板 | 
| 容器 Container | 
镜像的运行实例 | 
| Dockerfile | 
描述如何构建镜像的脚本 | 
| Registry | 
镜像仓库,例如 Docker Hub | 
Docker 工作原理(Linux 容器机制)
- 利用 Linux 的 namespace(隔离)和 cgroups(资源限制)实现
 
- 容器共享宿主机内核,但拥有独立文件系统、网络、进程空间
 
- 启动速度极快,资源占用小
 
二、Docker 镜像构建机制与实践
镜像是分层构建的
- 每个 Dockerfile 指令都会生成一个只读的文件系统层
 
- 构建时 Docker 利用缓存提升效率
 
Dockerfile 最佳实践
- 变动少的层放在前面,提高缓存命中率
 
- 合并多个 RUN 语句,减少层数
 
- 使用 
.dockerignore 文件避免将无用文件打包进镜像 
- 使用轻量基础镜像(如 alpine)减小体积
 
示例 Dockerfile
FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python", "main.py"]
 
  | 
 
.dockerignore 示例
__pycache__/ .git .env *.log node_modules/
 
  | 
 
三、Docker Compose
Docker Compose 是什么?
- 定义和运行多容器服务的工具(使用 docker-compose.yml)
 
示例
version: '3.8' services:   backend:     build: ./backend     volumes:       - ./test_files:/app/test_files   redis:     image: redis:7
 
  | 
 
运行:
docker-compose up --build docker-compose down
 
  | 
 
四、Docker 常用命令
镜像操作
docker build -t my-image . docker images docker rmi image-id docker pull image-name docker tag source target
 
  | 
 
容器操作
docker run image docker run -it image bash docker run --rm image docker run -v $(pwd):/app image docker run -p 8080:80 image docker ps docker ps -a docker stop container-id docker rm container-id docker exec -it container-id bash
 
  | 
 
容器调试
docker logs container-id docker cp file.txt container:/path docker cp container:/path/file.txt ./ docker inspect container-id
 
  | 
 
清理命令
docker system prune docker image prune docker container prune docker volume prune
 
  | 
 
资源限制示例
docker run --memory=512m --cpus=1 image
 
  | 
 
五、Docker 的使用场景与优势
适用场景
- 团队统一开发环境
 
- CI/CD 流程打包构建测试
 
- 微服务部署
 
- 数据科学/AI 项目环境隔离
 
相比虚拟机的优势
| 项目 | 
Docker 容器 | 
虚拟机 | 
| 启动速度 | 
秒级 | 
分钟级 | 
| 占用资源 | 
少(共享宿主机内核) | 
多(完整系统) | 
| 隔离性 | 
中(内核级) | 
高(硬件级) | 
| 可移植性 | 
高 | 
一般 | 
| 性能 | 
几乎无损 | 
有虚拟化开销 | 
六、实际开发中的 Docker 工作流
- 编写 Dockerfile 定义环境和入口
 
- 使用 
docker build 构建镜像 
- 使用 
docker run 启动镜像成为容器 
- 容器内运行程序,无需本地配置依赖
 
- 可通过 
docker push 发布镜像 
- 与 CI/CD 工具(如 GitHub Actions)结合,形成自动化部署
 
如需进一步扩展,可了解多阶段构建、Docker 网络、Volume 数据持久化、Docker 安全与最佳实践等内容。