[IT]docker是什么(介绍)

7 阅读2分钟

Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。它将应用程序及其依赖项打包到一个标准化的单元中,称为容器,从而实现了一次构建,到处运行的能力。


核心概念

  1. 容器

    • 轻量级、可执行的独立软件包,包含运行应用程序所需的代码、运行时、系统工具、库和配置。
    • 与虚拟机的区别
      • 虚拟机模拟整个操作系统(包括内核),较重。
      • 容器共享主机操作系统的内核,只打包应用和依赖,更轻量、启动更快。
  2. 镜像

    • 容器的静态模板(只读文件),定义了容器的运行环境。
    • 例如:一个镜像可以包含 Ubuntu 操作系统、Nginx 服务器和你的网站文件。
  3. Dockerfile

    • 文本文件,包含构建镜像的指令(如安装软件、复制文件等)。
  4. 仓库

    • 存储和分享镜像的地方。公共仓库如 Docker Hub,也可搭建私有仓库。

为什么使用 Docker?

  1. 环境一致性
    消除“在我机器上能运行”的问题,确保开发、测试、生产环境一致。

  2. 快速部署与扩展
    秒级启动容器,适合微服务架构和动态扩缩容。

  3. 资源高效
    容器共享主机内核,无需为每个应用分配完整操作系统资源,节省内存和CPU。

  4. 隔离性
    每个容器独立运行,互不干扰,提高安全性。


基本工作流程

# 1. 编写 Dockerfile
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y nginx
COPY index.html /var/www/html/
EXPOSE 80

# 2. 构建镜像
docker build -t my-web-app .

# 3. 运行容器
docker run -d -p 8080:80 my-web-app

# 4. 访问应用
curl http://localhost:8080

典型应用场景

  • 微服务架构:每个服务打包为独立容器。
  • 持续集成/部署:与 Jenkins、GitLab CI 等工具集成。
  • 开发环境标准化:新成员一键搭建环境。
  • 混合云部署:跨云平台一致运行。

常用命令

docker build          # 构建镜像
docker run            # 启动容器
docker ps             # 查看运行中的容器
docker images         # 查看镜像
docker pull/push      # 拉取/推送镜像
docker-compose        # 管理多容器应用(定义在 docker-compose.yml)

生态工具

  • Docker Compose:编排多容器应用。
  • Docker Swarm:原生集群管理(现较少用)。
  • Kubernetes:主流容器编排平台,管理大规模容器。

简单比喻

  • 镜像 ≈ 软件安装包(如 app.exe)。
  • 容器 ≈ 安装后正在运行的软件进程。
  • Docker ≈ 应用商店 + 轻量级虚拟机管理器。

总结:Docker 通过容器化技术解决了应用环境依赖和部署一致性的难题,成为现代云计算和微服务的基础设施之一。