试图在Docker中运行Cloudera Image

时间:2016-08-17 09:31:44

标签: 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

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

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文件,因为我知道它会影响你的机器。

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

2 个答案:

答案 0 :(得分:4)

如果您查看cloudera/clusterdock:latest的{​​{3}},则可以看到:

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

查看Dockerfile以了解容器应该如何运行。

答案 1 :(得分:0)

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