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

Dockerfile执行RUN yum命令提示yum: not found的解决方法咨询

解决Dockerfile中yum: not found的报错问题

核心原因

你的Dockerfile里连续使用了两个From指令,Docker会以最后一个From openjdk:11作为最终基础镜像。而openjdk:11的默认基础镜像是Debian系(如buster),该系统使用apt作为包管理器,不存在yum命令,因此触发报错。另外你的指令里还有拼写错误:ynm应为yum,ncuress大概率是nmap-ncat(对应nc工具)。

解决方案

根据需求选择以下两种方案之一:

方案一:基于CentOS 7构建并安装OpenJDK 11

保留CentOS 7作为基础镜像,在其之上安装OpenJDK 11及所需工具:

From centos:7
MAINTAINER Dengc

ENV MYPATH /usr/local
WORKDIR $MYPATH

# 安装OpenJDK 11、vim、net-tools及nc工具,并清理缓存减小镜像体积
RUN yum -y install java-11-openjdk-devel vim net-tools nmap-ncat \
    && yum clean all

EXPOSE 80
CMD /bin/bash

方案二:基于openjdk:11镜像,改用apt安装工具

若坚持使用openjdk:11作为基础镜像,将yum命令替换为Debian系的apt命令:

From openjdk:11
MAINTAINER Dengc

ENV MYPATH /usr/local
WORKDIR $MYPATH

# 更新源并安装所需工具,清理缓存减小镜像体积
RUN apt-get update && apt-get install -y vim net-tools netcat-openbsd \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

EXPOSE 80
CMD /bin/bash

额外提示

Dockerfile中仅能有一个有效基础镜像(多阶段构建场景除外),需根据实际需求选择合适的基础镜像;同时要注意命令拼写,避免因笔误引发额外问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:10:34