ZBLOG

docker是什么

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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=24400

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?