У меня проблема с хранением вывода docker run -it -d -p 43211:3000 --name appname -h hostname -v $PWD/local_dir:/root/remote_dir repo/imagename
в варибале BASH. Я попробовал «backticks», я также попробовал запустить его, как говорят официальные документы BASH_VAR=$(docker run ...)
, я даже попытался сохранить вывод в файле с docker run --...>$FILE_DESCRIPTOR
, но не повезло, сохранив ситуацию с ошибкой, ситуацию, когда имя уже используется другим контейнером, как так:Выход команды `docker run` в переменной BASH
$ FATA[0000] Error response from daemon: Conflict. The name "appname" is already in use by container 7c84d8d703c8. You have to delete (or rename) that container to be able to reuse that name.
Я хочу сказать, что это работает для ситуации успеха, так что я в состоянии хранить в BASH_VAR
полный идентификатор контейнера, при запуске приложения успешно, но, к сожалению, это решает только половину проблема, с которой я сталкиваюсь.
Любая помощь будет оценена по достоинству.
Спасибо!
делает 'выход = $ (докер запустить -это -d -p 43211: 3000 - имя appname -h hostname -v $ PWD/local_dir:/root/remote_dir repo/imagename 2> & 1) 'работает для вас? '2> & 1' перенаправляет stderr на stdout. – hek2mgl
Спасибо, добрый сэр! Да, @ kek2mgl, он работал как шарм! Причина, по которой я нуждаюсь в этом, заключается в том, что я создаю скрипт для управления интерактивным docker-контейнером bash с помощью [Dialog] (http://linux.die.net/man/1/dialog), и мне нужно разобрать вывод всех команд Я выхожу за кулисами. Вы можете ответить на вопрос, чтобы я мог отметить ваш комментарий как правильный ответ. –
У меня есть сценарий bash как это '#!/Usr/bin/bash result = $ (docker run -e' SITE = WL '-h pingnet --name pingnet --rm pingnet 2> & 1) echo $ {result } 'и не отображает результат – irom