我正在尝试在 rhel6 中下载一个文件并使用 tar 来解压缩它。我在 docker 上运行这个。我收到一个奇怪的错误:
/bin/sh: tar: command not found
2014/12/22 19:32:21 The command [/bin/sh -c tar -xzvf dse-4.0.3-bin.tar.gz] returned a non-zero code: 127
#
#HELLO
FROM rhel6
MAINTAINER xxxxx
#RUN yum -y install wget
RUN yum update -y && yum clean all
#RUN yum -y install tar
RUN curl -OL http://username:[email protected]/enterprise/dse-4.0.3-bin.tar.gz
RUN curl -OL http://username:[email protected]/enterprise/opscenter-4.0.3.tar.gz
RUN echo $PATH
RUN tar -xzvf opscenter-4.0.3.tar.gz
RUN rm *.tar.gz
答案1
您正在使用的 docker 容器不提供 tar 实用程序。我使用以下内容对此进行了测试;
sudo docker run -i -t rhel6 /bin/bash
这使用 rhel6 映像在 Docker 中为我创建了一个交互式 shell,然后我可以从那里以交互方式检查您所看到的错误;
bash-4.1# find / -name tar
bash-4.1# yum list | grep -i tar
upstart.x86_64 0.6.5-13.el6_5.3 @koji-override-0/6.5
这两个命令都显示 tar 未安装且不可用。
我不确定您使用 rhel 的理由,或者 rhel 如何在 Docker 容器中使用它的许可,但您是否可以使用 CentOS,它提供 tar 作为标准;
sudo docker run -i -t centos /bin/bash
bash-4.1# yum list | grep -i tar
---snip---
tar.x86_64 2:1.26-29.el7 base
---snip---