Как исправить ошибку при создании OCI во время Docker - PullRequest
1 голос
/ 30 апреля 2019

Я импортировал образ Docker в мою новую установку Rasbian Stretch.Образ работал хорошо на предыдущей установке (Rasbian Stretch тоже).Проблема: когда я пытаюсь запустить образ на новой установке с помощью команды bash (но laso с npm start и т. Д.), У меня возникает эта проблема:

$ docker run -ti nodejs:latest bash
docker: Error response from daemon: OCI runtime create failed:    container_linux.go:345: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown.

Я пытаюсь снова сохранить исходный образ вснова выполните импорт и запустите.Но это всегда одна и та же проблема.

Версия докера в предыдущей установке: 18.04.0-ce, а теперь: 18.09.0.

Я пытаюсь установить ту же версию Docker, что и раньше, но она ничего не изменила.

Я также пробую это решение: https://github.com/docker/for-linux/issues/561 Как сказать, чтобы удалить строку "MountFlags = slave "в /lib/systemd/system/docker.service Но у меня нет этого файла.Итак, я сделал:

grep -sr "MountFlags=slave" /

Вывод:

/lib/systemd/system/systemd-udevd.service:MountFlags=slave

Итак, я пошел в /lib/systemd/system/systemd-udevd.service, чтобы добавить в комментарий строку "MountFlags =ведомый».Затем я сделал: systemctl daemon-reload и systemctl restart docker

Но заметил работу и у меня все та же проблема.

Наконец-то это работает: Docker запустил hello-world

MyDockerfile:

    FROM node:8-jessie

RUN apt-get update
RUN apt-get install -y vim fswebcam 

# for mjpg_streamer
RUN apt-get install -y cmake libjpeg8-dev
RUN apt-get install -y gcc g++
EXPOSE 8080

WORKDIR /app
CMD ['npm', 'start']

Я не понимаю, почему мой образ не может работать в моей новой установке, в то время как он работает в моей предыдущей установке.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

я нашел «решение» -> я не знаю почему, но я просто создаю образ с помощью файла Docker.

0 голосов
/ 30 апреля 2019

Просто установите bash в ваш Dockerfile.
Например, измените эту строку в вашем Dockerfile:

RUN apt-get install -y vim fswebcam bash

Или используйте sh shell
Например, измените это в вашей команде run:

docker run -ti nodejs: последний sh

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