Docker Desktop For MacOS架构

下述内容基于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:<映射端口>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容