Докер загружен командой run, но не может получить доступ к консоли - PullRequest
0 голосов
/ 02 декабря 2018

Я собрал Dockerfile , где команда сборки была успешной

sudo docker build --network=host -t nid-robotic-server .

Но когда я пытаюсь запустить файл с

docker run -it nid-robotic-server

, он просто завершается.

rafa@ace:/home/automation$ docker run -it robotic-server
8:C 02 Dec 2018 11:39:05.871 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
8:C 02 Dec 2018 11:39:05.871 # Redis version=5.0.2, bits=64, commit=00000000, modified=0, pid=8, just started
8:C 02 Dec 2018 11:39:05.871 # Configuration loaded
rafa@ace:/home/automation$

Кто-нибудь может мне помочь с этим?Это было бы очень полезно.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

У вас нет задач, которые нужно выполнить, когда работает Docker.Вы используете точку входа в неправильном пути.задачи типа --daemonized будут выполняться в фоновом режиме.Проверяя ваш Dockerfile, никакая задача не будет выполнена при запуске docker.

хотя бы добавьте этот раздел в конец вашего dockerfile:

CMD ["/bin/sh"]

, тогда при выполнении этой команды вы будете отброшеныв sh оболочке докера.

docker run -it --entrypoint="/bin/sh" nid-robotic-server
0 голосов
/ 03 декабря 2018
docker run -it --entrypoint="/bin/sh" nid-robotic-server

или

docker run -it --entrypoint="/bin/bash" nid-robotic-server

должны работать на вас.

Зависит от того, как вы сконфигурировали ENTRYPOINT и CMD в вашем файле Docker.Если вы определите что-то еще, кроме shell, в качестве точки входа, вы не сможете «просто» запустить свой контейнер в интерактивном режиме, вам нужно переопределить точку входа с помощью --entrypoint сначала.

Если вы планируете запустить васизображения как dameon, установка чего-то иного, чем shell для точки входа, вполне подойдет и даже полезная практика (как это обычно бывает с docker).

Использование ENTRYPOINT в вашем файле Docker неверно, см. https://docs.docker.com/engine/reference/builder/#entrypoint для получения дополнительной информации.

...