Docker совет №15: Использование контейнеров для длительных и разовых задач
Mar 5, 2018 07:35 · 211 words · 1 minute read
Как всем хорошо известно, docker идеально подходит для изоляции процессов, которые могут быть как длительными по времени выполнения (например, запущенный web-сервер), так и непродолжительными, разовыми задачами. Давайте разберемся!
Хорошим примером такой разовой задачи будет официальный docker-образ “Hello World”, который мы использовали для запуска контейнера в статье об установке docker в Ubuntu 16.04. После ввода команды docker container run hello-world
будет скачан образ из Docker Hub и запущен контейнер, который выведет на экран приветствие и прекратит работу.
Также хорошим примером разовой задачи будет, например, запуск скрипта для создания резервной копии БД - его даже можно запускать по расписанию (подробнее о запуске cron в docker-контейнере здесь) или установка зависимостей с помощью composer
:
docker run --rm --interactive --tty \
--volume $(pwd):/app \
composer install
Примером длительной по времени выполнения задачи, как я уже говорил, может быть запуск в docker-контейнере web-сервера nginx:
docker container run --name nginx -p 80:80 nginx:alpine
или с ключом -d
, для запуска в фоновом (detached) режиме:
docker container run --name nginx -d -p 80:80 nginx:alpine
Вы сможете убедиться, что web-сервер работает, открыв в браузере http://localhost. Работать данный процесс будет пока запущен контейнер, то есть пока вы не выполните команду docker container stop nginx
, docker rm -f nginx
или docker kill nginx
.
Как видим, Docker хорошо подходит для выполнения обоих видов задач.