Docker

2026-07-24wei👁 19 阅读4 分钟阅读📝 1567 字💬 0 评论
Docker

Docker 简介

什么是 Docker?

Docker 是一个开源的容器化平台,用于将应用程序及其所有依赖项打包到一个轻量级、可移植的容器中,然后可以在任何安装了 Docker 的环境中运行。

简单类比:如果把传统的虚拟机比作一栋独立别墅(各自有完整的操作系统),那 Docker 容器就像公寓楼里的房间——共享底层操作系统内核,但彼此隔离、互不干扰。

核心概念

1. 镜像(Image)

  • 一个只读的模板,包含了运行应用程序所需的代码、运行时、库、环境变量和配置文件
  • 镜像是分层构建的,每一层代表一次变更
  • 比喻:相当于一个压缩包或安装光盘

2. 容器(Container)

  • 镜像的运行实例,是你真正运行应用的环境
  • 容器之间相互隔离,拥有自己的文件系统、网络和进程空间
  • 比喻:从安装光盘安装好的可运行程序

3. 仓库(Registry)

  • 存放和管理镜像的地方,类似代码的 GitHub
  • 最著名的是 Docker Hub(官方公共仓库)
  • 可以搭建私有仓库

4. Dockerfile

  • 一个文本文件,包含了一系列构建镜像的指令
  • 使用 FROMRUNCOPYCMD 等命令定义镜像内容
FROM python:3.11WORKDIR /appCOPY requirements.txt .RUN pip install -r requirements.txtCOPY . .CMD ["python", "app.py"] 

为什么要用 Docker?

优势 说明
环境一致性 开发、测试、生产环境完全一致,消除"在我机器上能跑"的问题
快速部署 容器秒级启动,远快于虚拟机
资源高效 共享宿主机内核,占用资源少,一台机器可运行成百上千个容器
可移植性 一次构建,到处运行——本地、服务器、云端均可
版本管理 镜像层可追溯,轻松回滚
微服务架构 适合将应用拆分为多个独立部署的微服务

Docker vs 虚拟机

特性 Docker 容器 虚拟机
启动速度 秒级 分钟级
占用磁盘 MB 级 GB 级
操作系统 共享宿主机内核 需要完整 OS
隔离级别 进程级隔离 完全隔离
性能损耗 几乎无 有一定开销

常用命令

bash
# 镜像操作docker pull nginx          # 拉取镜像docker images              # 查看本地镜像docker rmi nginx           # 删除镜像docker build -t myapp .    # 构建镜像 # 容器操作docker run -d -p 80:80 nginx         # 后台运行容器并映射端口docker ps                            # 查看运行中的容器docker ps -a                         # 查看所有容器(含已停止)docker stop <container_id>           # 停止容器docker rm <container_id>             # 删除容器docker exec -it <container_id> bash  # 进入容器内部docker logs <container_id>           # 查看日志 # 数据卷(持久化数据)docker run -v /host/path:/container/path nginx 

实际工作流

开发者编写代码编写 Dockerfile 定义环境执行 docker build 构建镜像推送镜像到仓库(Docker Hub / 私有仓库)服务器拉取镜像并 docker run 启动容器使用 Docker Compose / Kubernetes 编排多容器应用 

Docker Compose(容器编排)

docker-compose.yml 用于定义和管理多个容器的应用:

yaml
version: '3'services:  web:    build: .    ports:      - "5000:5000"  redis:    image: "redis:alpine"  db:    image: "postgres:15"    environment:      POSTGRES_PASSWORD: example 

一条命令启动全部服务:docker-compose up -d

总结

Docker 通过容器化技术解决了软件交付和部署中的环境差异问题,是现代 DevOps、CI/CD 流水线和微服务架构的基石。掌握 Docker 是后端开发、运维和云原生领域的必备技能。

wei
技术博客作者
1567 字 · 0 评论
2026-07-24

评论 (0)

暂无评论,来写第一条吧

登录后发表评论

分类

友链

关于本站

用 SpringBoot + Nuxt3 搭建的个人技术博客,记录编程之路的思考与收获。

© 2026 好啵博客 · Built with ❤️ & SpringBoot + Nuxt3