试图在Docker中运行Cloudera镜像

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

我成功下载了docker和cloudera图像,当我运行docker 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文件,所以不知道在哪里可以find它来纠正它。 此外,知识有限,我不能改变bin / bash文件,因为我知道它会影响你的机器。

任何帮助将不得不假设,因为我几乎没有经验,所以我对这一点知之甚less。

如果您查看Dockerfile中的cloudera/clusterdock:latest ,可以看到:

 ENTRYPOINT ["python"] 

所以,当你做docker run cloudera/clusterdock:latest /bin/bash ,你基本上是在容器里面做python /bin/bash 。 如果您在terminal中键入该错误,则会看到相同的错误,通常情况下:

 $ 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以查看容器应该运行的实际情况。

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