Docker Tip #42: Using Docker for Long Running and One off Tasks
Docker is great at isolating processes, and they can either be long running processes (like a web server), or tasks that exit quickly.
A good example of a one off task that exits would be the official Docker “Hello World” image.
You can try it out by running docker container run hello-world
. After a few seconds
you’ll be greeted with a hello world message, but then the container / process stops.
It doesn’t run in an infinite loop until you manually kill it. Another good example of this would be a database backup script. That will run for X amount of time and then likely exit on its own when it finishes.
On the other hand, a long running process would be expected to live forever until it either crashes, or you manually kill it.
A text book example of that would be a web server, such as nginx. You can try
that out by running docker container run -p 80:80 nginx:alpine
. You’ll notice
that the container does not exit on its own. It just waits to do work (in this
case, serve web requests).
You could say that’s a long running process and we even published port 80 so you
can check out http://localhost
in your browser. It will log your request
back to the terminal.
If you want nginx to stop, you would have to terminate it yourself, which you
can do by pressing CTRL+C
or stopping the container from a different terminal
using docker stop <container id>
.
Docker is a champion at running both types of tasks and you should use both when needed.