Можно ли собрать образ из Dockerfile и запустить его с помощью одной команды?
Есть одна команда docker build
для создания Dockerfile и docker run -it
запуска образа.
Есть ли какая-либо комбинация этих двух команд, чтобы упростить сборку и запуск с помощью одной команды?
docker
dockerfile
мерцать
источник
источник
Ответы:
Нет, единой команды нет. Но если вы пометите свое изображение при его создании, его будет легче запустить:
источник
docker rmi foo
.Если вы хотите избежать тегирования,
docker build -q
выводит только окончательный хэш изображения , который можно использовать в качестве аргумента дляdocker run
:И добавить
--rm
к ,docker run
если вы хотите, чтобы контейнер автоматически удаляется при выходе.источник
docker build
: /-q
опции. Чтобы было тихо, выводить только автоматически сгенерированный тег. И это все. Не стесняйтесь трансформировать этот стандартный ввод по своему усмотрению.docker build . | tee /dev/tty | tail -n1 | cut -d' ' -f3 | xargs -I{} docker run --rm {}
Я использую docker-compose для этого удобства, так как большинство приложений, которые я создаю, рано или поздно обращаются к внешним службам, поэтому, если я все равно собираюсь использовать его, почему бы не использовать его с самого начала. Просто используйте docker-compose.yml как:
а затем просто запустите приложение с помощью:
Он перестроит изображение или повторно использует контейнер в зависимости от того, были ли внесены изменения в определение изображения.
источник
Если вы используете Makefile, мне пригодится этот фрагмент:
Вам не нужны теги, как в ответе @ jonathon-reinhart, но вы также получаете результат сборки.
источник
ПК с Windows
Сделайте
run.bat
напильник. Затем в файл добавьте это:Чтобы запустить файл с помощью powershell или cmd, сделайте следующее:
источник
docker-build-and-run
Я создал небольшую вспомогательную команду для сборки и запуска в одной команде. В Linux или Mac вы можете добавить это в свой,
~/.bash_profile
чтобы сделать его доступным в Терминале.Использование:
Примеры:
Сценарий:
Добавьте это в
.sh
файл или добавьте в свой~/.bash_profile
:источник
Вы также можете
docker build
указать имя изображения, которое оно выводит, вdocker run
:docker build
даст вам многострочный текст... Successfully built 18e77bc0d83a
tail -n1
' '
и получить3
первое слово с помощьюcut -d' ' -f3
run
помощьюxargs -I{} docker run {}
источник
| tee /dev/tty
после,docker build .
чтобы получить полный вывод!Для тех, кто ищет многоразовое решение, вы можете установить этот плагин докера, который я создал: https://github.com/stasmihailov/docker-script
Затем вы можете собрать и запустить Dockerfile следующим образом:
источник