【Docker】Docker入门了解

发布于:2025-02-10 ⋅ 阅读:(57) ⋅ 点赞:(0)

Docker 全面指南:从入门到实战


一、Docker 核心概念
  1. Docker 是什么?
    Docker 是一个开源的容器化平台,允许将应用程序及其依赖打包到轻量级、可移植的容器中,实现跨环境一致运行。容器共享宿主机内核,资源占用少,启动速度快(秒级),解决了"环境不一致"问题。

  2. 核心组件

    • 镜像(Image):只读模板,包含应用代码、依赖和配置(如 ubuntu:20.04)。
    • 容器(Container):镜像的运行实例,隔离且可独立启停。
    • Dockerfile:定义镜像构建步骤的脚本文件。
    • Docker Hub:官方镜像仓库,支持公有/私有镜像托管。
    • 数据卷(Volume):持久化存储容器数据,避免数据丢失。

二、Docker 优势
特性 说明
环境一致性 开发、测试、生产环境完全一致,消除"在我机器上能跑"问题
轻量高效 容器共享宿主机内核,资源占用仅为 MB 级,启动速度秒级
隔离性 进程、网络、文件系统隔离,避免应用冲突
快速部署 镜像一次构建即可多处运行,简化 CI/CD 流程

三、安装 Docker
  1. Ubuntu 系统

    sudo apt update
    sudo apt install -y docker.io
    sudo systemctl enable docker
    sudo systemctl start docker
    docker --version  # 验证安装
    
  2. Windows/macOS
    下载 Docker Desktop,安装后即可使用图形化界面。


四、基础操作命令
命令 功能
docker pull <镜像名> 从仓库拉取镜像
docker run -it <镜像名> 启动交互式容器
docker ps -a 查看所有容器(含已停止)
docker stop <容器ID> 停止运行中的容器
docker rm <容器ID> 删除容器
docker rmi <镜像名> 删除镜像
docker exec -it <容器ID> bash 进入运行中的容器

五、Dockerfile 实战(C++ 示例)
  1. 项目结构

    myapp/
    ├── Dockerfile
    └── src/
        └── main.cpp
    
  2. Dockerfile 内容

    # 使用 GCC 官方镜像
    FROM gcc:latest
    WORKDIR /app
    COPY src/main.cpp .
    RUN g++ -o myapp main.cpp
    CMD ["./myapp"]
    
  3. 构建与运行

    docker build -t cpp-app .    # 构建镜像
    docker run --rm cpp-app      # 运行容器(自动清理)
    

六、进阶应用场景
  1. 多容器编排(Docker Compose)
    创建 docker-compose.yml 管理多个服务:

    version: '3'
    services:
      app:
        build: .
        command: ./myapp
      redis:
        image: redis:alpine
    

    启动命令:docker-compose up

  2. 生产环境部署优化
    使用多阶段构建缩小镜像体积:

    # 构建阶段
    FROM gcc:latest AS build
    COPY . .
    RUN g++ -o /app main.cpp
    
    # 运行阶段(使用轻量级 Alpine)
    FROM alpine:latest
    COPY --from=build /app /app
    CMD ["/app"]
    

七、常见问题解答
  1. 容器数据持久化
    使用 -v 挂载数据卷:

    docker run -v /宿主机路径:/容器路径 <镜像名>
    
  2. 容器网络配置
    暴露端口:-p 8080:80
    自定义网络:docker network create mynet

  3. 调试技巧

    docker logs <容器ID>      # 查看日志
    docker inspect <容器ID>  # 查看容器详细信息
    

八、学习资源推荐

通过 Docker,开发者可以快速实现环境标准化、提升协作效率,并为微服务架构打下基础。建议从简单项目入手,逐步掌握容器化开发的全流程。


网站公告

今日签到

点亮在社区的每一天
去签到