尝试在Docker中运行Cloudera Image

And*_*rew 1 python bash command-line docker

我正在尝试在大学项目的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
Run Code Online (Sandbox Code Playgroud)

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

docker run cloudera/clusterdock:latest /bin/bash
Run Code Online (Sandbox Code Playgroud)

我收到以下消息

    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
Run Code Online (Sandbox Code Playgroud)

阅读了pep提到的pep之后,我知道我需要更改文件中的编码,但是pep专注于python文件,并且我不知道有python文件,因此不知道在哪里可以找到它来更正它。另外,由于知识有限,我不方便更改bin / bash文件,因为我知道它会影响您的计算机。

任何帮助都必须假设我对这方面的知识很少,因为我经验不足。

Neh*_*ani 6

如果你看一下Dockerfilecloudera/clusterdock:latest,你可以看到:

ENTRYPOINT ["python"]
Run Code Online (Sandbox Code Playgroud)

因此,当您执行时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
Run Code Online (Sandbox Code Playgroud)

您可能想做:

docker run -it --entrypoint=/bin/bash cloudera/clusterdock:latest
Run Code Online (Sandbox Code Playgroud)

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