Docker Desktop某些版本中使用的内核

3 次收藏下载次数: 0状态:社区镜像维护者:Docker 官方工具与组件镜像仓库类型:镜像最近更新:3 年前
下载命令
点击查看

linuxkit-kernel 镜像技术文档

1. 镜像概述和主要用途

该镜像为基于 https://github.com/linuxkit/linuxkit 项目构建的内核镜像,具体版本为 4.14.131-ec66b3fe27...。其核心用途是作为 Docker Desktop 特定版本的内核组件,提供容器运行时的底层系统支持。该镜像通过 linuxkit/linuxkit 项目的 4.14.x 分支构建(对应 PR https://github.com/linuxkit/linuxkit/pull/3407),构建命令为 make build_4.14.x。

2. 核心功能和特性

2.1 内核基础特性

  • 轻量级设计:基于 linuxkit 项目的内核构建,针对容器环境优化,减少不必要的模块和资源占用,适合嵌入式或资源受限场景。
  • 容器化优化:内核配置默认启用容器运行时所需功能(如 cgroups、namespaces、overlay 文件系统等),确保 Docker 容器高效运行。
  • 安全性增强:继承 linuxkit 内核的安全特性,包括最小权限原则、内核模块签名验证、可选的安全加固补丁(如 KASLR、SMAP 等)。

2.2 版本与构建特性

  • 版本溯源:基于 Linux 4.14.x 长期支持(LTS)内核分支,稳定性经过验证,适合生产环境或开发环境长期使用。
  • 构建可追溯:通过 linuxkit/linuxkit 项目 PR https://github.com/linuxkit/linuxkit/pull/3407 构建,代码变更和构建流程透明,便于问题排查和版本控制。

3. 使用场景和适用范围

3.1 主要场景

  • Docker Desktop 内核组件:作为 Docker Desktop 特定版本(如某些旧版本或定制版本)的默认内核,支撑桌面环境下的容器运行。
  • 开发环境底层支持:供开发者在基于 linuxkit 的自定义容器环境中使用,验证内核版本兼容性或测试容器化应用。
  • 轻量级容器系统:通过 linuxkit 工具链集成该内核,构建面向边缘计算、嵌入式设备的轻量级容器运行时系统。

3.2 适用范围

  • 环境限制:仅适用于 Docker Desktop 明确指定的版本,或基于 linuxkit 构建的自定义容器系统。
  • 架构支持:通常支持 x86_64 架构,具体需参考构建时的目标平台配置。

4. 使用方法和配置说明

4.1 构建内核镜像(基于 linuxkit 项目)

若需自定义构建包含该内核的镜像,需通过 linuxkit 工具链执行以下步骤:

4.1.1 环境准备

bash
# 克隆 linuxkit 项目并切换至 PR 3407 对应的分支
git clone https://github.com/linuxkit/linuxkit.git
cd linuxkit
git fetch origin pull/3407/head:kernel-4.14.x
git checkout kernel-4.14.x

# 安装依赖(以 Ubuntu 为例)
sudo apt-get install -y build-essential libssl-dev bc bison flex

4.1.2 构建内核

bash
# 执行构建命令(对应版本的内核)
make build_4.14.x

# 构建产物位于 ./build/kernel/4.14.131-ec66b3fe27.../ 目录下
# 包含内核镜像(bzImage)、内核模块(modules.tar)等

4.2 集成至 Docker Desktop(示例)

对于需要手动指定 Docker Desktop 内核的场景(需 Docker Desktop 支持自定义内核):

  1. 下载该内核镜像的构建产物(如 bzImage 和 modules.tar);
  2. 参考 Docker Desktop 官方文档,将内核文件放置于指定目录(如 ~/.docker/desktop/kernel/);
  3. 重启 Docker Desktop,通过 docker info 验证内核版本:
    bash
    docker info | grep "Kernel Version"  # 应显示 4.14.131-ec66b3fe27...
    

4.3 构建自定义容器系统(示例 docker-compose 配置)

通过 linuxkit compose 集成该内核,构建包含容器运行时的完整系统(docker-compose.yml 示例):

yaml
version: "2"
kernel:
  image: "docker.xuanyuan.run/linuxkit/kernel:4.14.131-ec66b3fe27..."  # 本地构建的内核镜像路径或仓库地址
  cmdline: "console=ttyS0 console=tty0"
init:
  - linuxkit/init:v0.8
  - linuxkit/runc:v0.8
  - linuxkit/containerd:v0.8
onboot:
  - name: dhcpcd
    image: docker.xuanyuan.run/linuxkit/dhcpcd:v0.8
    command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
services:
  - name: docker
    image: docker.xuanyuan.run/docker:20.10.9-dind
    capabilities:
      - all
    net: host
    mounts:
      - type: bind
        source: /var/run
        destination: /var/run
    command: ["--insecure-registry=192.168.1.100:5000"]

构建并运行:

bash
linuxkit build -format iso-efi custom-system.yml
qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -m 2048 -cdrom custom-system.iso

5. 配置参数与内核选项

5.1 构建时配置参数

构建内核时可通过 make build_4.14.x 命令的参数调整配置:

  • KERNEL_VERSION:指定内核版本(默认由分支定义,如 4.14.131);
  • CONFIG:自定义内核配置文件路径(默认使用 kernel/config-4.14.x);
  • MODULES:指定需包含的内核模块(默认包含容器运行必需模块,如 overlay、br_netfilter 等)。

5.2 内核启动参数

集成该内核的系统可通过启动 cmdline 调整内核行为,常用参数:

  • console=ttyS0:启用串口控制台输出;
  • containerd.untrusted_workload_runtime:指定非信任容器的运行时(如 runc);
  • net.ifnames=0:禁用 Predictable Network Interface Names,使用传统网卡命名(eth0、eth1 等)。

6. 注意事项

  • 版本兼容性:该内核仅与特定 Docker Desktop 版本兼容,升级 Docker Desktop 前需确认内核版本是否匹配。
  • 定制化限制:直接修改内核配置需重新构建,建议通过 linuxkit 项目的 kernel/config-4.14.x 文件调整后再执行 make build_4.14.x。
  • 支持渠道:作为社区构建的内核镜像,官方支持依赖于 linuxkit 项目社区,生产环境使用需评估稳定性需求。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 for-desktop-kernel 镜像标签

docker pull docker.xuanyuan.run/docker/for-desktop-kernel:<标签>

DockerHub 原生拉取命令

docker pull docker/for-desktop-kernel:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告