You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CentOS 8 Docker容器中运行cut等缺失的系统命令?

解决方案

安装对应包获取缺失命令

CentOS 8最小化镜像默认裁剪了绝大多数非核心系统工具,所有缺失的命令都可以通过安装对应软件包实现:

  • clear 命令属于ncurses包,安装命令:dnf install -y ncurses
  • cut 命令属于coreutils包,若缺失执行:dnf install -y coreutils
  • systemctl 命令属于systemd包,需注意Docker容器默认不启动systemd作为1号进程,仅安装包无法直接使用,若必须使用systemctl,启动容器时需要添加--privileged参数并指定入口为/usr/sbin/init。

如果不知道某条命令对应的安装包,可执行dnf provides */[命令名]搜索匹配的包,比如搜索clear对应的包就执行dnf provides */clear。

注意:CentOS 8 官方已经停止维护,默认源已下线,安装包前需要先执行以下命令修复源:

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

非最小化CentOS镜像说明

官方没有提供包含全部命令的CentOS镜像,全量系统工具对应的软件包总大小超过几十GB,不符合容器轻量的设计原则。
如果不想每次启动容器都手动安装工具,可以自行基于官方最小镜像构建自定义镜像,提前预装所需的所有工具,参考Dockerfile如下:

FROM centos:8
# 修复CentOS 8下线源问题
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
    sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \
    # 安装常用工具
    dnf install -y ncurses coreutils systemd vim wget net-tools && \
    # 清理缓存减小镜像体积
    dnf clean all

内容的提问来源于stack exchange,提问作者user7693832

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:24:03