在 Ubuntu 里创建 Docker 容器,与在 Windows 上安装 VMware Workstation Pro 虚拟机的区别

在 Ubuntu 里创建 Docker 容器,与在 Windows 上安装 VMware Workstation Pro 虚拟机,两者在架构、资源使用、启动速度、隔离程度等方面有本质区别。下面帮你梳理清楚。


一、核心区别:容器 vs 虚拟机

对比项 Docker 容器 VMware 虚拟机
运行方式 共享宿主机内核,进程级隔离 运行完整的客户操作系统(Guest OS),硬件级虚拟化
资源占用 轻量,只占用应用及其依赖的空间(通常几十到几百 MB) 重量,每个虚拟机包含完整 OS,占用数 GB 磁盘和固定内存
启动速度 秒级(毫秒级) 分钟级(需启动完整操作系统)
隔离程度 进程隔离,共享内核(安全性稍弱) 硬件隔离,安全性更高
性能 接近原生,无虚拟化开销 存在虚拟化开销(CPU、内存、I/O)
使用场景 微服务、开发测试、持续集成、快速部署 运行不同操作系统、强隔离、桌面虚拟化

简单来说:Docker 是"轻量化"的进程打包,VMware 是"全虚拟化"的完整计算机。


二、创建 Docker 需要分别分配内存和存储吗?

不需要像虚拟机那样"固定分配",但可以通过参数进行限制。

  • 默认情况下:Docker 容器共享宿主机的内存和存储,没有硬性限制。容器内看到的内存是宿主机内存,存储使用宿主机的磁盘空间(通过镜像层和卷)。
  • 资源限制 :可以通过 docker run 时添加参数来限制资源:
    • --memory="512m":限制容器最多使用 512MB 内存
    • --cpus="1.5":限制容器最多使用 1.5 个 CPU 核心
    • --storage-opt size=10G:限制容器可用的磁盘空间(需要存储驱动支持)

如果不做限制,容器可以耗尽宿主机所有资源。因此生产环境通常会设置合理的资源上限。


三、创建 Docker 容器的基本步骤

以 Ubuntu 上创建并运行一个 Ubuntu 容器为例:

  1. 安装 Docker(如果尚未安装)

    bash 复制代码
    sudo apt update
    sudo apt install docker.io
    sudo systemctl start docker
    sudo systemctl enable docker
  2. 拉取基础镜像 (可选,docker run 会自动拉取)

    bash 复制代码
    docker pull ubuntu:22.04
  3. 创建并运行容器

    bash 复制代码
    docker run -it --name my_ubuntu ubuntu:22.04 /bin/bash
    • -it:交互式终端
    • --name my_ubuntu:指定容器名
    • ubuntu:22.04:使用的镜像
    • /bin/bash:启动命令
  4. 在容器内操作(如安装软件、创建文件等)

    bash 复制代码
    apt update && apt install vim -y
    exit   # 退出容器(容器会停止)
  5. 启动已存在的容器

    bash 复制代码
    docker start -i my_ubuntu
  6. 后台运行(守护模式)

    bash 复制代码
    docker run -d --name my_ubuntu_daemon ubuntu:22.04 sleep infinity
  7. 查看容器

    bash 复制代码
    docker ps          # 运行中
    docker ps -a       # 所有
  8. 进入后台运行的容器

    bash 复制代码
    docker exec -it my_ubuntu_daemon /bin/bash
  9. 删除容器

    bash 复制代码
    docker rm my_ubuntu

四、补充说明

  • 存储持久化 :容器内的数据默认随容器删除而消失。需要持久化时,应使用 卷(volume) 或 绑定挂载(bind mount) ,例如:

    bash 复制代码
    docker run -v /宿主机路径:/容器路径 ...
  • 网络 :容器默认与宿主机网络隔离,可通过 -p 宿主机端口:容器端口 映射端口。

  • 多容器编排:使用 Docker Compose 或 Kubernetes 管理多容器应用。


五、场景选择建议

  • 如果你需要在 不同操作系统 (如 Windows、Linux、macOS)上运行应用,或需要强隔离环境,选择 VMware 虚拟机。
  • 如果你希望 快速启动、轻量级、方便移植 ,且运行的是 Linux 应用 ,选择 Docker 容器。
相关推荐
阿尼卡~1 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
hhhjhl3 小时前
Undici 跨端三方库仓颉适配全流程
java·开发语言·ubuntu
liyi_hz20085 小时前
O2OA(翱途) V10.1 即将发布|功能再升级,安全再加固,协同更高效!
java·javascript·windows·开源软件
csdn_aspnet6 小时前
Docker Prune:完整指南与上手示例
运维·docker·容器·prune
七牛云行业应用8 小时前
DeepSeek Harness(dsh)安装完整指南:Windows、macOS、Linux 三平台 + 桌面端与 Web 端全覆盖
linux·windows·macos·ai·ai编程
~城南花已开~8 小时前
Intel E810 SR-IOV VF Spoofcheck 防伪造测试-KVM3
服务器·网络·笔记·学习·ubuntu·etl工程师
十年磨一剑~9 小时前
APT 仓库包查看方法文档
linux·ubuntu
死磕音视频10 小时前
Dify 入门:用 Docker 自部署并搭建知识库问答助手
docker·知识库·dify·大模型应用
技术小事10 小时前
Surface 装 Ubuntu 双系统
linux·运维·ubuntu
起个名字都难啊10 小时前
visual studio C/C++空项目修改为CUDA c++
c++·windows·visual studio