一、什么是 Docker?
1. 容器化技术基本概念
Docker 是一种容器化技术,能把代码 + 依赖 + 配置 + 环境打包成一个独立、可移植、可直接运行的包。简单理解:Docker = 把软件打包成 “绿色版”,在哪都能跑,不挑系统、不报错。
2. Docker vs 传统虚拟机
特性 Docker 容器 虚拟机(VM) 体积 小(MB 级) 大(GB 级) 启动速度 秒级 分钟级 性能 接近原生 损耗大 隔离 进程级隔离 完全系统隔离 占用资源 极少 很高 一句话总结:虚拟机是 “整套电脑”,Docker 是 “单个软件运行环境”。
3. Docker 三大核心组件
镜像(Image):只读的软件包(如系统、Python、MySQL) 容器(Container):镜像运行起来的实例(正在运行的软件) 仓库(Registry):存放镜像的地方(如 Docker Hub、阿里云)
二、Docker 的优势
1. 轻量 & 高性能
共享宿主机内核 不启动完整系统 资源占用极低
2. 跨平台一致运行
一次打包,到处运行开发、测试、生产环境完全一样,彻底解决:“在我电脑上能跑,你那不行” 的问题。
3. 快速启动 & 高效扩容
秒级启动 一键复制容器 非常适合微服务、高并发场景
4. 环境隔离
不同应用之间互不干扰: Python2 和 Python3 共存 MySQL5.7 和 MySQL8.0 共存 不污染系统环境
三、Docker 核心概念(必须掌握)
1. 镜像(Image)
只读模板 分层存储(修改只增不减,节省空间) 可以继承、叠加、共享 例:python:3.11、mysql:8.0、nginx:alpine
2. 容器(Container)
镜像的运行实例 可启动、停止、删除 每个容器相互隔离 镜像 = 安装包,容器 = 运行中的软件
3. 仓库(Registry)
Docker Hub:公共仓库(默认) 阿里云 / 腾讯云:国内加速器 私有仓库:公司内部使用
4. Dockerfile
用来自动构建镜像的脚本 一行行命令告诉 Docker 如何打包 可重复、可版本管理、可团队共享
四、Docker 安装与配置
一键安装(官方推荐)
curl -fsSL https://get.docker.com | bash
启动服务
systemctl start docker
systemctl enable docker
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
docker version
docker info
docker run hello-world
五、Docker 常用命令(最常用合集)
docker pull nginx # 下载镜像
docker images # 查看本地镜像
docker rmi nginx # 删除镜像
docker build -t myapp . # 用Dockerfile构建镜像
docker run -d -p 80:80 nginx # 后台运行,端口映射
docker ps # 查看运行中容器
docker ps -a # 查看所有容器
docker stop 容器ID # 停止
docker rm 容器ID # 删除
docker exec -it 容器ID /bin/bash # 进入容器内部
docker logs 容器ID # 查看日志
六、Dockerfile 详解(打包脚本)
dockerfile
FROM python:3.11 # 基础镜像
WORKDIR /app # 工作目录
COPY . . # 复制文件
RUN pip install -r req.txt# 安装依赖
CMD ["uvicorn", "main:app"]# 启动命令
构建阶段
FROM python:3.11 AS builder
COPY . .
RUN pip install -r req.txt
运行阶段(更小)
FROM python:3.11-slim
COPY –from=builder /app .
CMD ["python", "main.py"]
七、Docker 网络与存储
version: '3'
services:
web:
build: .
ports:
– "8000:8000"
redis:
image: redis
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: 123456
docker-compose up -d # 启动
docker-compose down # 停止并删除
docker-compose logs # 查看日志
八、Docker 在生产环境的应用
九、常见问题与调试技巧
docker logs 容器ID # 看日志
docker exec 进入调试
十、未来趋势与生态
十一、整篇文章核心总结
Docker = 容器化打包工具 镜像 = 软件包,容器 = 运行实例 一次打包,到处运行 Docker Compose 管理多容器 企业部署、微服务、机器学习部署 必备



