Apparently I’ve been living under a rock for a while. Last time I looked the whole world was like “omg wouldn’t it be great to run Sitecore on Docker” And now peeps are like “omg yo. You can!” It’s gotten to the point that there’s even a epic community-driven repository for the process. It’s slick. It’s powershell-y. It has json files. It was better than Cats.
If you want a shortcut to getting things up and running, you can head over to Mark Cassidy’s Blog: https://intothecloud.blog/2019/09/14/Sitecore-Docker-for-Dummies/ He does a great job of getting right to the point without any of my fluff. But if you want a deeper dive into what’s going on and why, keep reading! (Regardless, you should go check his Blog out. It got me started and can work for you, too!) We’re going to walk through the steps to create a 9.2 CM instance in the XM Topology. Pretty simple.
When it comes to the community github repository, I’m not going to even pretend I had a hand in creating that (though I want to eventually). It was a whole lot of peeps, which are nicely listed here. I did however want to put some information out there to provide some stepping stones as to the why of Docker, and how you get from “Oh, I should do Docker” to “Oh I did docker”. It’s not a super small journey, and it starts… a long time ago. Actually it starts with a google search, which is “what is Docker”
A search result that doesn’t really help anyone answer the question at all
Docker is basically a container engine which uses the Linux Kernel features like namespaces and control groups to create containers on top of an operating system and automates application deployment on the container.
Ok, cool. But in English now. I could type an entire blog entry about what Docker Containers are and how they’re different than Virtual Machines. This video does a pretty great job at explaining some of the architectural differences:
Ok, so that makes sense. We took out the OS box and smushed it into the Binary/Library box. But how does that actually help things out? Aren’t Operating Systems nice? Nah. Imagine a world where you could execute a command and you’d have a new CM server with Sitecore installed already. That’s possible with Docker. No more installing the right Web Deploy, SqlCmd libraries, .NET versions (3.5 and 4.7.2 right?), SIF… it goes on and on. That’s pretty much the beauty here. Simplicity of provision. Oh, and if you hose your container, ripping it down and restarting a fresh one takes all of… five minutes at the most?
Also, as I’ll explain in a later post in the series, the concept of Layering is an immense time-saver. It allows for quick composition of new Images and thus Containers. When was the last time you said “Hey, lemme quickly spin up another VM here”?? It can be a process. And now it’s an unnecessary.
It feels like you’re sold on this. I am too. Which is why I’m doing a whole blog series on this. Moving on to Part 2: Running Docker!
This is a post in the “Yet Another Sitecore Docker Series.” Other Posts include
- Part 1: The Beginning
- Part 2: Running Docker
- Part 3: Layers are Yum
- Part 4: Composing an Image
- Part 5: Deconstructing a Dockerfile
- Part 6: Simply Solr
- Part 7: Smooth as SQL
- Part 8: It’s Sitecore Time
- Part 9: Compose all the Things