I've been taking a sip from the fire hose lately by learning a number of technologies relatively quick.
One of those technologies is Docker and I've had two experiences pushing me towards this new way of development.
One experience was at my new job. I was assigned an existing project using multiple Docker containers. Keep in mind, I've never used Docker before because I've never had a need for it. However, since this is a project that I want to succeed, I had to dig into Docker...fast.
While this project uses Windows containers and I've learned how Windows Docker images are not secure, I needed to find out more about how to proficiently use Windows Docker containers and secure them like they were actual machines.
The second experience I had was having lunch with an old friend who coincidentally was a die-hard Docker architect ("Docker or die!"). So I decided to pick his brain and ask him some interesting questions.
During lunch, I wanted him to explain the reasons why Docker was so important and why you would use containers. I wanted him to convince me why I would use a container on a generic web project connecting to a SQL database.
After our discussion, he explained it would be more beneficial and useful in a large, corporate environment where various languages require various settings and server configurations. Docker manages all of those relatively easily. He didn't see a need for a Docker container for a simple web project.
That makes sense and explains why enterprises from various industries adopted the Docker platform.
Those two experiences made me dig into Docker a little further and collect a number of recommended links to learn Docker quicker.
So I'm passing my findings (and links) on to my readers.
Why not learn about Docker from the source?
Dockerfile Best Practices (Docker)
Some Dockerfiles can get pretty messy so Docker wrote the best practices for building a solid Dockerfile.
Want the ultimate list of Docker articles, resources, tutorials, and projects? This Github repository gives us a large amount of resources to completely understand how to use Docker.
Learn Docker and Containers Interactively
Katacoda provides a great way to learn Docker using small interactive sections to accomplish certain Docker topics.
Hands-on Docker Lab (recommended)
Speaking of interactively, why not do a hands-on lab? This hands-on lab presents a number of self-paced, progressive labs to give the users a better understanding of Docker.
Using SQL Server Instances in Docker
The people over at Red Gate's Simple Talk explains how to contain a SQL Server instance using Docker. Very helpful post for DBAs who want to install SQL Server instances...FAST.
Step-by-Step Guide to Run SQL Server in a Windows Docker Container
If you are looking for an easier post on how to use SQL Server in a container, this is also another great post taking the user step-by-step through the process of containerizing SQL Server (is containerizing a word?)
Docker Tutorial Series
This is another great tutorial for learning how to use Docker which covers data volumes, writing a DockerFile, using Docker Swarms, and using Kubernetes with Docker.
Docker has been around for a while now (since 2013). While I've worked at two companies in that time, we were always deploying web projects through a pipeline. The environment never required special treatment.
The reason may be we never had extreme environment issues: we deploy to a web server/Azure host and the day was done.
I can understand how larger enterprises can experience crazy server environments, which is where Docker makes sense.
As with all of my collections, I wanted to share these links with my readers and, as always, this will be a living web document as I continue to update this post with new, relevant links are made available.
I hope these resources can help out my readers.
Do you use Docker? How many image files do you have? Linux Docker or Windows Docker? Post your comments below and let's discuss.