Docker is Automation and Documentation

Docker is a lot of things... And it might be different depending on what you do. There are however 2 aspects that I would like to emphasize here: Documentation and Automation.

Automation

If you use Docker in a system, it doesn't make a lot of sense to just create containers manually. You should make it part of an automated system. Part of your CI/CD workflow. And Docker really excels with this. It has great command line tools but more importantly it provides vays to automate with files. (Dockerfiles and Docker Compose files)

Documentation

Speaking about files, this is really why it provides such a great help for documentation. Those files describe how to build and run your applications.
Then, should you spend time documenting how to build your application? I would argue that most of the documentation is already in the Docker files. No need to spend a lot of time documenting something that is already explained with relatively clear instructions in a standardized configuration file.
Working software over comprehensive documentation

This is one of the principles from the agile manifesto. This is why the 2 points above are important. Containers can give you most of the documentation and automation you need. Don't waste time on useless documentation, just take the time to create your Docker file properly.

Think about what can fit into this category

Most people who need to create an application server will automatically think about Docker. I think you can however extend this to a lot other things. Next time you have any sequence of actions to perform, you might actually think about that and see if it would make sense as a Docker container. Not only for services.

Here are a few things that come to mind:

Side Notes:

Docker is a lot of things... And it might be different depending on what you do. There are however 2 aspects that I would like to emphasize here: Documentation and Automation.

Automation

If you use Docker in a system, it doesn't make a lot of sense to just create containers manually. You should make it part of an automated system. Part of your CI/CD workflow. And Docker really excels with this. It has great command line tools but more importantly it provides vays to automate with files. (Dockerfiles and Docker Compose files)

Documentation

Speaking about files, this is really why it provides such a great help for documentation. Those files describe how to build and run your applications. Then, should you spend time documenting how to build your application? I would argue that most of the documentation is already in the Docker files. No need to spend a lot of time documenting something that is already explained with relatively clear instructions in a standardized configuration file.

Working software over comprehensive documentation

This is one of the principles from the agile manifesto. This is why the 2 points above are important. Containers can give you most of the documentation and automation you need. Don't waste time on useless documentation, just take the time to create your Docker file properly. 

Think about what can fit into this category 

Most people who need to create an application server will automatically think about Docker. I think you can however extend this to a lot other things. Next time you have any sequence of actions to perform, you might actually think about that and see if it would make sense as a Docker container. Not only for services.  Here are a few things that come to mind: