Попытка запустить изображение Cloudera в Docker

Я пытаюсь запустить cloudera/clusterdock в изображении докера для университетского проекта. Это мой первый опыт использования докеров, и до сих пор я использовал инструкции на веб-сайте cloudera, которые немного разрежены.

Я успешно загрузил докер и изображение 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, поскольку я знаю, что это может повлиять на вашу машину.

Любая помощь должна предполагать, что я мало знаю об этом, поскольку у меня мало опыта.

Ответ 1

Если вы посмотрите 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, чтобы увидеть, как на самом деле должен быть запущен контейнер.

Ответ 2

Связанные документы (например, описание на странице "Докер-студия изображения" или наше сообщение в блоге) описывают, что clusterdock предназначен для запуска с помощью clusterpock.sh. Это необходимо, потому что структура управляет Docker на главной машине.