Docker 是一种开源的容器化平台,用于开发、部署和运行应用程序。
1. 核心概念
容器 vs 虚拟机
传统虚拟机 (VM) Docker 容器
+-------------------+ +-------------------+
| App A | | App A |
+-------------------+ +-------------------+
| Guest OS | | App B |
+-------------------+ +-------------------+
| Hypervisor | | Docker Engine |
+-------------------+ +-------------------+
| Host OS | | Host OS |
+-------------------+ +-------------------+
| Hardware | | Hardware |
+-------------------+ +-------------------+
2. 主要组件
Docker Engine
- Docker Daemon: 后台服务,管理容器
- Docker Client: 命令行工具
- REST API: 与守护进程通信
核心概念
# Dockerfile → Image → Container
# (构建文件) (镜像) (运行的实例)
3. Docker 基本使用
常用命令
# 镜像管理
docker pull ubuntu:20.04 # 拉取镜像
docker images # 查看本地镜像
docker rmi <image_id> # 删除镜像
# 容器管理
docker run -it ubuntu:20.04 bash # 运行交互式容器
docker ps # 查看运行中的容器
docker stop <container_id> # 停止容器
docker rm <container_id> # 删除容器
# 构建镜像
docker build -t myapp:1.0 . # 从Dockerfile构建镜像
4. Dockerfile示例
# Python应用示例
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制依赖文件并安装
COPY requirements.txt .
RUN pip install -r requirements.txt
# 复制应用代码
COPY . .
# 暴露端口
EXPOSE 8000
# 启动命令
CMD ["python", "app.py"]
5. Docker Compose(多容器编排)
# docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "8000:8000"
depends_on:
- redis
redis:
image: "redis:alpine"
docker-compose up #启动所有服务
docker-compose down #停止所有服务
6. Docker在C++后端开发中的应用场景
开发环境标准化
FROM ubuntu:20.04
#安装C++开发环境
RUN apt update && apt install -y \
g++ \
cmake \
make \
git
WORKDIR /workspace
微服务部署
- C++后端API服务打包成独立镜像
- Redis/MySQL等中间件用官方镜像
- Nginx负载均衡
CI/CD流水线
代码提交 → Docker构建 →测试→推送仓库→生产环境部署
7. C++项目Docker示例
FROM ubuntu:20.04
RUN apt update && apt install -y g++ cmake make
COPY . /app
WORKDIR /app/build
RUN cmake .. && make
CMD ["./my_cpp_server"]
8. Docker优势总结
✅ 环境一致性: “一次构建,到处运行”
✅ 资源高效:比虚拟机更轻量,启动更快
✅隔离性:应用之间相互隔离
✅快速部署:秒级启动和停止
✅微服务友好:每个服务独立容器化
对于C++后端开发者来说,Docker是现代化部署和开发的必备技能!
内容由零声教学AI助手提供,问题来源于学员提问




