Docker совет №15: Использование контейнеров для длительных и разовых задач

Mar 5, 2018 07:35 · 211 words · 1 minute read docker

Как всем хорошо известно, 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 хорошо подходит для выполнения обоих видов задач.

tweet Share