At Steele, we’re committed to offering quality custom software solutions to our clients, but we also take great interest in equipping business owners to make the best decisions possible for their companies. That’s why we decided to foray into the world of Docker, one of our development tools.
Docker is incredibly popular in the world of software development, and it’s easy to see why: it has revolutionized the development process by using virtual “containers.” These containers package everything an application needs to run (and nothing it doesn’t), and they can be shared freely both internally and on the internet via Docker Hub. After only a few years of using Docker, it’s completely changed the way we work. So, we want to dive deep into understanding Docker, why you should use it, and why you may not want to use it.
The basics of Docker
As we mentioned above, Docker is notable because it uses virtual containers to run software. These containers can serve as separate test environments for each project you’re developing. From those containers, you can make changes to the project’s code or create an “image,” which contains the pieces needed for the container. Containers work independently from one another, but they are capable of communicating with one another within Docker. They can be used across all different types of operating systems, such as Windows, Mac OS, and Linux.
Think of Docker’s workflow like that of a truck. The Docker file, being a “recipe” for the image, tells Docker how to create the image you want, much like how manufacturers use separate parts to assemble a truck. Then, the resulting image Docker creates is like when the truck sits in a dealership; it’s out in the open and ready to be purchased, but it isn’t doing anything at that moment. Finally, the containers are like when a customer drives the truck off the lot and puts it to work; the image within the container is at work and running.
You can share this image freely from here. You can use it within your own company, or you can upload it to Docker Hub, Docker’s official image-sharing platform. Images are usually pretty simple to create and use if you’ve gotten the hang of Docker, but fortunately, many images are ready for download on Docker Hub. It can be tricky to begin understanding Docker, but hopefully, this gets you started.
Why you should use Docker
There’s a reason Docker is so popular: for many, the pros far outweigh the cons! In fact, we’ve mentioned a few already. For instance, the containers can be shared and run across different operating systems. This is a huge win for software development, because it means consistency. When we develop a project, we can be confident the container will still function in a new operating system.
Another big win for Docker is in its image-sharing platform, Docker Hub. Finding images on Docker Hub can easily save you time on a project and gives you the freedom to alter the image to suit your needs. When it comes time to deploy your project, Docker can weed out the elements of your image the container doesn’t need to run the program. This ups the portability of your containers between systems. Much of Docker is automated, which means it’s a pretty set-it-and-forget-it application.
Why you shouldn’t use Docker
Even though many do use Docker on a regular basis, there are reasons not to. Obviously, despite its versatility, understanding Docker is another thing you’d have to invest time and money in, should you choose to use it. That may seem obvious, but the time you spend not only learning a new application but training your staff and transitioning to a new application can be immense. You can probably get by for a while using Docker Hub images, but you may need to spend extra time with Docker to create your own images.
Another major element to keep in mind is that it doesn’t use a graphical user interface (GUI). A GUI gives you buttons to click and text boxes to fill, but Docker doesn’t have any of that. Working with the containers in Docker is strictly done on a command line, which could easily be a deterring factor.
The last con is that using Docker on newer Mac systems has a few caveats. Apple recently switched to their own proprietary processing architecture, which is great, but it affects the way Docker works. You can still use Mac devices with Docker, but it comes with a few added layers that wouldn’t be there with Windows or Linux.
Understanding Docker, like any application, can take time and only you can judge if the switch is right for your company. We can only attest to what we know: it has revolutionized our world, and the worlds of many other developers.