"Hey mate, I just started Docker. It's kind of awesome actually!"
Coincidence or not, but I had for this post some friends starting their Docker journey to inspire me, and what a great and easy time to start a container journey with the ocean of tutorials and solutions now available about Docker !
BREAKING NEW: Mirantis, a specialist of OpenStack, Kubernetes and Cloud Solutions, bought Docker Enterprise. Which changes nothing of the purpose of this post for the moment since we were gonna work mostly with the open-source edition.
As I told it, there are already plenty of blogs and explanations about Docker available. So instead of writing another one to explain what has already been explained, I propose to find on this page my little selection of links that I would recommend you for your sailing.
Suggested requirement before start
Seems Docker and containers could be a difficult subject for neophytes, I suggest you to have at least some knowledge about:
- Virtual Machine / virtualisation to understand the difference with a container
- Some basic level in programming language, to understand the purpose of Docker
- A Docker environment to practice. Check here to install it
- Some basic concept about Devops, since Docker is fully influenced by that philosophy
The following links come mainly from my porter.io subscription. If you don't know this tool, I suggest it to you. Pretty cool to receive your daily dose of technology news matching your Github stars.
The Roadmap would be split into different levels of progression, each of them with a set of possible questions you may ask yourself about Docker. Click on them to visit the associated blog post.
Table of contents:
0 - Fundamental theories : Some knowledge to start Docker
1 - Let's start some hack : To begin container manipulation
2 - Make containers efficient again : To keep containers light and fast
3 - Maximise the security : To make your software safe
4 - Deep dive in the high sea of production : To deploy your environment
5 - Cloud is the new playground : the new playground is the cloud
6 - Alternatives: because Docker is not exactly the end
7 - Advanced Knowledges: to impress people in worldly dinner.
Bonus: Or post I didn't know where to put
Layout 0 - Fundamental theories
What is Docker?
"Docker" explained by Microsoft Documentation
How to explain the bond between Docker and Devops?
Explained by Matthieu Robin on dzone.com
What is the difference between a container and a virtual machine?
"Container" explained by Doug Chamberlain on netapp.com
How do I use the basic commands on Docker?
Explained by Edward S. on hostinger.com
Layout 1 - Let's start some hack
How can I easily create a Docker environment?
"Docker Machine" explained by Shahriar Shovon on linuxhint.com
Where can I find some Docker containers ready to use?
"Docker Hub" explained on runnable.com
How to write a Dockerfile to create my own Docker Container?
"Dockerfile" explained on linuxize.com
How to persist my data on Docker?
"Docker volume" explained by Tal Kammer on devinpractice.com
How to expose my Docker container on the network?
"Docker Network" explained Alex Kondratiev by on itsyndicate.org
How to make my containers interact between them?
"Docker Compose" explained by Roger Krolow on linuxconfig.org
Layout 2 - Make containers efficient again
How to make my containers faster?
Explained by Chris Tozzi on rancher.com
How to make my Docker image lighter?
"Multi-Stage" explained by nrxr on nrxr.org
What if I want to use Windows containers?
"Windows container" explained on microsoft.com
Layout 3 - Maximise the security
How to secure my Docker container?
Explained by Charlie Belmer on nullsweep.com
What are best practices for production?
Explained on datatree.io
How to make sure my container is safe?
"Image Scanning" explained by Gabriel Avner on whitesourcesoftware.com
Layout 4 - Deep dive in the high sea of production
Can I use Docker in production?
Explained by optasy on medium.com/@OPTASY.com
How to turn Docker scalable and high available?
"Docker Swarm" explained on sigmoidal.io
What is Kubernetes?
"Kubernetes" explained on kubernetes.io
Layout 5 - Cloud is the new playground
What is the best build-in solution on AWS?
"Amazon ECS" explained on clickittech.com
How to run containers on Google Cloud Platform?
"GKE" explained by John Kariuki on scotch.io
Which service use on Microsoft Azure for containers?
"Azure App Service" explained by Mike Pfeiffer on mikepfeiffer.io
Layout 6 - Alternatives
Which self-hosted Container Registry to use?
"Quay" explained on projectquay.io
What if I don't like to manage Docker in command line?
Explained by Portainer.io
Can I do Docker compatible container with other tools?
"Podman" explained by Doug Tidwell on developers.redhat.com
Can I build Container Image another way?
"Buildah" explained by Ashutosh Sudhakar Bhakare on fedoramagazine.org
Can I avoid the complex part of using Docker?
"Lando" explained on Lando.dev
Layout 7 - Advanced Knowledges
How does an engine like the Docker one actually work?"
Docker Runtime" explained by Ian Lewis on ianlewis.org
Bonus - Because I didn't know where to put them
What about Docker in today's situation?
Explained by thehftguy on thehftguy.com
As you have seen, there are many things to understand around Docker before using it to its full potential. For now, if you've managed to go through everything, congratulations!
You should have understood that Docker is more a tool for development stage and local test than production environment. Other tools like Kubernetes would be in that case more efficient and scalable.
However, despite his controversial situation, Docker remains an excellent tool to begin and learn how to manipulate containers. The next step is to learn how to develop efficient microservices!
PS: This post contains the word "Docker" 46 times.