我必须在一个docker容器上调试网络问题。容器是用 "FROM registry.access.redhat.comubi7ubi-minimal "构建的。
它没有像普通shell那样的 "telnet "或 "ping"。那是为了节省空间而设计的。
我试着在docker容器shell中通过yum安装它们--yum不可用他们使用了一些叫做 "microdnf "的东西,就像yumTried "bash-4.2# microdnf install iputils"--没有匹配'iputils'的包。类似的结果为telnet
试着在创建镜像的docker文件中运行它。它似乎被安装了--但映像的创建却爆炸了""命令'binsh -c yum install iputils'返回了一个非零代码。1”
我把镜像基础从 "FROM registry.access.redhat.comubi7ubi-minimal "改成了 "FROM registry.access.redhat.comubi7ubi",这样就有yum可用了。
"yum install iputils "从容器shell,和从docker文件失败同样的方式。
有没有一个镜像(最好是redhat)可以让我使用 "ping",并能正确处理我的Dockerfile?
FROM registry.access.redhat.com/ubi7/ubi-minimal
RUN microdnf update -y && rm -rf /var/cache/yum
RUN microdnf clean all
RUN microdnf install shadow-utils
# Create a group and user
RUN groupadd -r myapp && useradd -r myapp -g myapp
RUN useradd -r aspisc -g myapp
RUN mkdir -p /opt/smyapp/config
RUN mkdir -p /opt/smyapp/logs
RUN chown -R myapp:smyapp /opt/myapp
RUN mkdir -p /opt/myapp/bin && mkdir -p /opt/myapp/libs
RUN mkdir -p /opt/jre/
ENV JAVA_LIBS_CP /opt/myapp/libs
ENV LD_LIBRARY_PATH=/lib64
RUN echo JAVA_LIBS_CP=${JAVA_LIBS_CP}
EXPOSE 9500
EXPOSE 9501
ENTRYPOINT ["sh", "-c", "/opt/jre/bin/java $JAVA_OPTS -cp /opt/smyapp/bin/*:$JAVA_LIBS_CP/*...."]
你使用的是最小的基本镜像 (registry.access.redhat.com/ubi7/ubi-minimal
). 您可以暂时切换到非最小图像 (registry.access.redhat.com/ubi7/ubi
)并在那里安装iputils。