下述内容基于AI生成内容整理,仅供参考
核心组件详解

1. 宿主操作系统层(macOS)
Docker CLI
用户通过终端操作的命令行工具,通过以下方式与虚拟机通信:
Unix 套接字:/var/run/docker.sock
TCP/IP(用于远程访问)
GUI 管理界面
提供可视化资源监控、网络配置和 Kubernetes 管理功能
2. 虚拟化层(HyperKit)
技术特性
基于 macOS 原生 Hypervisor.framework 实现硬件虚拟化
仅占用 100MB 左右内存,启动时间 <2 秒
资源分配
默认配置:2 CPU 核心 + 2GB 内存(可通过 Docker Desktop 调整)
磁盘空间:动态分配的 qcow2 镜像文件
3. Linux 虚拟机层
内核组件

例子
ps x -e -o pid,command | grep -E "containerd|docker"
218 /usr/bin/runc run --preserve-fds=3 01-docker
230 /usr/libexec/docker/docker-init /usr/bin/entrypoint.sh
249 /usr/bin/containerd --config /etc/containerd/containerd.toml
301 /usr/local/bin/dockerd --config-file /run/config/docker/daemon.json --containerd /run/containerd/containerd.sock --pidfile /run/desktop/docker.pid --swarm-default-advertise-addr=192.168.65.3 --host-gateway-ip 192.168.65.254
2225 /usr/bin/containerd-shim-runc-v2 -namespace moby -id c7a9bb95f60ebc24214b55b29be5cff1a699229323a783cf3c8835914a793e28 -address /run/containerd/containerd.sock
docker-init: 处理容器内进程的信号和僵尸进程。
containerd: 管理容器的生命周期。
containerd: 管理容器的生命周期。
containerd-shim: 作为 containerd 和 runc 之间的桥梁,管理单个容器。
runc: 负责运行容器。
4. 跨环境交互机制
文件系统

网络架构

特殊网络访问
容器→宿主机:通过 host.docker.internal 域名
宿主机→容器:使用 localhost:<映射端口>