Skip to main content
 首页 » 编程设计

python之尝试在 Docker 中运行 Cloudera Image

2025年05月04日36sharpest

我正尝试在一个大学项目的 docker 镜像中运行 cloudera/clusterdock。这是我第一次使用 docker,到目前为止,我一直在使用 cloudera 网站上的说明,这些说明有点稀疏。

我成功下载了 docker 和 cloudera 图像,当我运行 docker-images 命令时,我得到以下信息:

REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE 
cloudera/clusterdock   latest              9b4d4f1dda22        7 days ago          467.5 MB 

当我尝试使用此图像运行容器时。使用以下命令

docker run cloudera/clusterdock:latest /bin/bash 

我收到以下消息

    File "/bin/bash", line 1 
    SyntaxError: Non-ASCII character '\x80' in file /bin/bash on line 2, 
 but no encoding declared; see http://www.python.org/peps/pep-0263.html for details 

阅读了 pep 提到的 pep 我知道我需要更改文件中的编码,但 pep 专注于 python 文件,我不知道有一个 python 文件,所以不知道在哪里可以找到它来更正它。此外,由于知识有限,我不太愿意更改 bin/bash 文件,因为我知道它会影响您的机器。

任何帮助都必须假设我对此知之甚少,因为我经验不足。

请您参考如下方法:

如果你看Dockerfile对于 cloudera/clusterdock:latest,你可以看到:

ENTRYPOINT ["python"] 

因此,当您执行 docker run cloudera/clusterdock:latest/bin/bash 时,您基本上是在容器内执行 python/bin/bash。如果您在终端中输入以下内容,通常会看到相同的错误:

$ python /bin/bash 
  File "/bin/bash", line 1 
SyntaxError: Non-ASCII character '\xe0' in file /bin/bash on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 

你可能想做:

docker run -it --entrypoint=/bin/bash cloudera/clusterdock:latest 

看clusterdock.sh看看容器实际应该如何运行。