参考资料

  1. Docker用于打包、分发和运行应用
  2. docker安装详细说明以及案例
  3. 如何优化Docker镜像?
  4. Docker基于Linux容器技术
  5. docker安装mysql详细说明以及案例
  6. 能否用Docker替代虚拟化?
  7. docker安装openwrt详细说明以及案例
  8. Docker/DockerHub 国内镜像源/加速列表

Docker与虚拟化的区别:

  1. Docker使用容器技术,共享主机内核

  2. 虚拟化通过Hypervisor运行完整操作系统

  3. Docker启动更快,资源占用更少

  4. 虚拟化提供更强的隔离性

替代场景:

  1. 应用隔离:适合

    • 示例:部署多个Python应用

      docker run -d --name app1 python:3.8
      docker run -d --name app2 python:3.9
  2. 开发环境:适合

    • 示例:Node.js开发环境

      docker run -v $(pwd):/app -it node:14 bash
  3. 微服务架构:适合

    • 示例:Compose部署微服务

      services:
        web:
          image: nginx
        api:
          image: my-api

不适合的场景:

  1. 需要不同内核版本

    • 示例:在Linux主机运行Windows应用

  2. 高安全隔离需求

    • 示例:多租户云环境

  3. 特殊硬件需求

    • 示例:需要直通GPU设备

性能对比:

  1. Docker容器启动时间:<1秒

  2. 虚拟机启动时间:通常>10秒

  3. Docker内存开销:MB级

  4. 虚拟机内存开销:GB级