我正在尝试在大学项目的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文件,因为我知道它会影响你的机器。
任何帮助都必须假设我对此知之甚少,因为我没什么经验。
答案 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。