Запуск процесса контейнера вызвал "exec: \" / bin / sh \ ": stat / bin / sh: нет такого файла или каталога": неизвестно - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу понять, как работает CMD и ENTRYPOINT.Итак, я только что создал очень простой Dockerfile

FROM scratch

CMD echo "Hello First"

ENTRYPOINT echo "Hello second" 

Затем я создаю образ этого:

docker build -t my_image .

Журналы, как показано ниже:

Шаг 1/3: С нуля ---> Шаг 2/3: эхо CMD "Hello First" ---> Использование кэша ---> 9f2b6a00982f Шаг 3/3: Эхо ENTRYPOINT "Hello second" ---> Использованиекэш ---> 1bbe520f9526 Успешно собран 1bbe520f9526 Успешно помечен my_image: последний ПРЕДУПРЕЖДЕНИЕ О БЕЗОПАСНОСТИ: Вы создаете образ Docker из Windows на хосте, отличном от Windows.Все файлы и каталоги, добавленные в контекст сборки, будут иметь права доступа '-rwxr-xr-x'.Рекомендуется перепроверить и сбросить разрешения для конфиденциальных файлов и каталогов.

Когда я создаю контейнер с этим изображением, он возвращает:

docker run my_image

Ошибка:

docker: Ответ об ошибке от демона: Ошибка создания среды выполнения OCI: container_linux.go: 344: запуск процесса контейнера вызвал "exec: \" / bin / sh \ ": stat / b в / sh: такого файла нетили каталог ": неизвестно.

Может кто-нибудь помочь мне с ошибкой?

1 Ответ

0 голосов
/ 22 февраля 2019

Здесь происходят две вещи.

Файл Docker, который запускается FROM scratch, начинается с базового образа, в котором абсолютно ничего нет.Это абсолютно пусто.Не существует набора базовых инструментов или библиотек или чего-либо еще, кроме пары файлов устройств, которые Docker вводит для вас.

Команда ENTRYPOINT echo ... переписывается Docker в ENTRYPOINT ["/bin/sh", "-c", "echo ..."] и вызывает CMD чтобы быть полностью проигнорированным.Если не переопределено с помощью docker run --entrypoint, это становится основным процессом, выполняемым контейнером.

Так как это изображение FROM scratch и абсолютно ничего не содержит, оно не содержит оболочку, следовательно, "/ bin/ sh: нет такого файла или каталога "ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...