Как получить доступ к Docker-контейнеру, который сделан из изображения java: 8-jdk-alpine - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь в системе Mint 19 Linux.Я сделал образ докера, используя следующее: -

FROM java:8-jdk-alpine

COPY ./target/demo-docker-0.0.1-SNAPSHOT.jar /usr/app/

WORKDIR /usr/app

RUN sh -c 'touch demo-docker-0.0.1-SNAPSHOT.jar'

ENTRYPOINT ["java","-jar","demo-docker-0.0.1-SNAPSHOT.jar"]

Я запускаю его как docker run -p 8080:8080 --name myApp -d mygreet. Изображение запускается и выполняет файл JAR.Но я хотел бы получить доступ к работающему контейнеру.Я попытался docker exec -it --user root myApp /bin/bash Я получил сообщение об ошибке: -

Ошибка выполнения exec во время выполнения OCI: Ошибка exec: container_linux.go: 348: запуск процесса контейнера вызвал "exec: \" / bin / bash \«: stat / bin / bash: такого файла или каталога нет»: unknown

Я мог получить доступ к большей части контейнера Docker с помощью приведенной выше команды.После доступа я мог видеть, что все док-контейнеры имеют Linux-подобные файловые системы.Я новичок в докере, и у меня появилось выражение, что у всех образов докеров может быть подобная файловая система.Возможно, это мои предположения.Это должно зависеть от базового изображения.Для вышеприведенного случая базовое изображение было java: 8-jdk-alpine.Это могут быть разные вещи.

У меня есть пара вопросов.

  1. Как мне получить доступ к этому контейнеру?
  2. Как мне узнать существующее базовое изображение, чтобы я мог получить к нему правильный доступ в будущем?

1 Ответ

1 голос
/ 31 марта 2019

Не думаю, что bash он там установлен, попробуйте вместо этого / bin / sh.

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

docker run -it java:8-jdk-alpine /bin/sh

кажется, работает

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