无法找到“cpu”子系统已安装的cgroups层次结构;您可能需要在 MacOS Sonoma 14.3.1 上手动挂载 cgroups

问题描述 投票:0回答:1

我正在尝试在具有 ARM64 架构的 MacOS 上运行一个

mesos-slave
容器。由于
dockerhub
上没有适用于 mesos-slave 的本机 ARM64 Docker 映像,因此我必须使用基础 centos7 映像构建我的映像。

FROM centos:centos7

RUN yum -y update && \
    rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-3.noarch.rpm && \
    yum -y install mesos-1.10.0 && \
    yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo && \
    yum -y install docker-ce docker-ce-cli containerd.io && \
    yum -y clean all

ENTRYPOINT ["mesos-slave"]
EXPOSE 5051

尝试运行容器时出现以下错误。

EXIT with status 1: Failed to create a containerizer: Could not create DockerContainerizer: Failed to create docker: Failed to find a mounted cgroups hierarchy for the 'cpu' subsystem; you probably need to mount cgroups manually

正在使用的命令

docker run \
--name local-mesos-slave \
-p 5051:5051 \
-e MESOS_MASTER=zk://local-zookeeper:2181/mesos \
-e MESOS_CONTAINERIZERS=docker \
-e MESOS_WORK_DIR=/tmp/mesos \
-e MESOS_SYSTEMD_ENABLE_SUPPORT=false \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
mesos-slave:latest

我有类似的方法来构建

mesos-master
mesos-zookeeper
并且它们工作得很好。另外,我知道 MacOS 上没有 cgroup。我尝试了多种方法,例如使用 Podman、Colima 以及通过 Synthetic.conf 文件创建符号链接,但它们也不起作用。

所以我的问题是如何解决使用 ARM64 arch 的 MacOS 上的 Docker 容器的 cgroup 错误?

docker macos arm64 mesos cgroups
1个回答
0
投票

master 和zookeeper 工作的原因是他们根本不使用cgroup。

您需要切换到 cgroups v1,因为 v2 尚未发布 https://stackoverflow.com/a/74348261/1387612

© www.soinside.com 2019 - 2024. All rights reserved.