【问题标题】:Trying to run Cloudera Image in Docker尝试在 Docker 中运行 Cloudera Image
【发布时间】:2016-12-23 21:19:03
【问题描述】:

我正在尝试在一个大学项目的 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 文件,因为我知道它会影响您的机器。

任何帮助都必须假设我对此知之甚少,因为我没有什么经验。

【问题讨论】:

    标签: python bash command-line docker


    【解决方案1】:

    相关文档(例如图像的 Docker Hub 页面或我们的博客文章中的描述)描述了 clusterdock 旨在通过采购 clusterdock.sh 来运行。这是必需的,因为框架控制主机上的 Docker。

    【讨论】:

      【解决方案2】:

      如果您将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 以了解容器应该如何实际运行。

      【讨论】:

      • 我查看了 clusterdock.sh 和相关文档,但我无法理解它们。
      • 定义入口点是关键
      猜你喜欢
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      相关资源
      最近更新 更多