(Update) We’ve released new training material on Docker, including the Cloud Academy’s Docker in Depth Learning Path. This learning path is designed to teach you all about Docker starting from the individual container and progressing to the continuous deployment of an application in AWS. The Learning Path comprises of video Courses, Hands-on Labs, and Quizzes to test your skills. Visit the Cloud Academy’s Training Library for all our latest content on Docker.
Containers, and in particular Docker-based ones are the Big Thing everybody talks about and works with these days, and in fact, we frequently get questions about getting started with Docker. Many people and companies really take it to the max and try to do everything in them including tasks which in the past you had only considered full VMs for, like untrusted third-party tenants. Pretty much everyone uses docker or LXC now to deploy workloads, run CI tests, or even to have an insulated environment to develop applications with a specific set of libraries and a dedicated configuration. This is especially convenient when you want to share that all across multiple computers or with your colleagues.
So, what is this Docker everybody is talking about and how can you take advantage of it?
What is Docker?
We have a great course – What is Docker? and its first lecture is all about the question “What is Docker?”. The course goes in deep details about this wonderful open source software and the logic behind it. Nevertheless, Docker is basically a wrapper around Linux Container, another old software to create containers on Linux, as you might easily imagine. Actually, the latest versions of Docker are using a brand new library instead of LXC, but it’s a change under the hood with no impact on high-level functionality.
Since it exploits LXC (or this new container library), Docker containers are built on top of facilities like cgroups and namespaces provided by the Linux kernel, so they are not traditional virtual machines and do not require a separate operating system. Instead, they use those kernel’s functionality to completely isolate the application’s view of the operating system. So resources are confined, services are restricted, multiple containers can share the same kernel, but each container can be constrained to only use a defined amount of resources such as CPU, memory and I/O. If you add the fact that a Docker container can start in a handful of milliseconds, you probably now understand how cool the whole thing is.
Using Docker to create and manage containers makes it easier to create highly distributed systems by allowing multiple applications, worker tasks, and other processes to run autonomously on a single physical machine or across a spectrum of virtual machines. And that’s why Docker is finding its heaven in the Cloud, where a lot of providers, and especially tier-1 players like Amazon, Google and Microsoft are devoting some of their resources to add compatibility and support for Docker.
Getting started with Docker
Despite the huge complexity hidden under the hood, getting started with Docker is quite easy, also thanks to it Git-style syntax. If you are familiar with that VCS, and you probably are if you are interested in Docker, you will see many concepts shared among the two. The base to get a Docker container running is by starting an image containing all the files and settings and everything is needed to run the container. I won’t spend any more seconds discussing all the details about the Docker syntax and usage, as it is well-explained both in the Getting Started with Docker course I already talked you about and in its followup Dockerfile course
The key factor here is that it’s quite easy to grasp the basic concepts of Docker and that helped a lot in making the difference about its huge spread. In fact, as we have just seen, Docker has not reinvented the wheel, rather it wrapped around an existing, solid and well-working technology adding a set of features that helped it make the big jump. Nowadays, Docker Inc. is a well-established startup, who raised more than 40 millions of dollars so far, and is seeing a larger and larger ecosystem growing around it. In fact, many hosting services were born to help developers deploy applications and Docker containers on the Internet
Docker hosting services
Indeed, Docker hosting services are among the first companies born in this ecosystem. These are *aaS services providing virtual machines to deploy Docker images and/or container to, sometimes with a good degree of customization of the underlying infrastructure. Sometimes, these services also add APIs or other software layers in addition to the standard Docker features, making them full-fledged PaaS services.
We already published a comparison among the 4 most important Docker services in another post, and I really recommend you to read it if you are interested in learning more about them. Sometimes, subtle variations among the various services available can make a huge difference according to your needs, so ensure to read that post thoroughly. Nevertheless, after we published that post, the top players in the Cloud world made their moves to enhance support for Docker on their respective platforms.
Docker support by Amazon, Google, and Microsoft
Amazon announced a brand new service built on top of EC2 during the latest re:Invent. Actually, everyone was expecting a move there by the giant of the Cloud world, given that its closest competitors had announced something similar already. This new service has been called ECS, that is EC2 Container Service, and is currently available as a preview. The initial focus of ECS is to address multi-container multi-host clustering, which aligns with customer requirements for high-performance and scale as they move their Dockerized distributed applications into production. Amazon already had some support for Docker in its Elastic Beanstalk PaaS service, but this one looks way closer to the Infrastructure level, and we expect it will provide huge flexibility to the needs of the developers. We are looking forward to running an extensive test about this service, and you can expect a deep review very soon.
On the other side, Google developed dedicated support for Docker long before AWS. There is a specific service to help getting started with Docker on GCP, under the name of Google Container Engine. It allows to deploy and run docker container on GCP virtual machines, paying just for the Google Compute Engine instances that you will provide for your containers and no extra costs. The interesting thing here is that at the core of this Google Container Engine service there is another open source software that Google is actively developing, that is Kubernetes. This is a cluster manager for containers that can schedule replicas across a group of node instances. A master instance exposes the Kubernetes API, through which tasks are defined. Kubernetes spawns containers on nodes to handle the defined tasks. Also, the number and type of containers can be dynamically modified according to need. It’s a very advanced technology, and I’m looking forward to seeing Google Container Engine out of the alpha, as they may introduce backward incompatible changes until the stable version will be released. Google is devoting a lot of efforts and resources to this project and is probably the most advanced platform with regard to Docker support.
Microsoft recently added support for Docker containers too. The initial support for Docker on Linux-based Azure VMs has been added in June, but that was just the bare minimum they needed to make Docker available to users. Last month though, they took this thing more seriously, and they announced a stronger commitment in the field. In particular, they announced the open sourcing of Docker Engine for Windows Server, support for the Docker Open Orchestration APIs, and the Federation of Docker Hub images in the Azure Gallery. Although none of them seems as interesting as the dedicated services provided by Google or Amazon, the fact that even a company like Microsoft is showing such a great interest for Docker confirms how important this software it is and how crucial the container technology has become.
New Content: Platforms, Programming, and DevOps – Something for Everyone
This month our team of expert certification specialists released three new or updated learning paths, 16 courses, 13 hands-on labs, and four lab challenges! New content on Cloud Academy You can always visit our Content Roadmap to see what’s just released as well as what’s coming soon....
Mastering AWS Organizations Service Control Policies
Service Control Policies (SCPs) are IAM-like policies to manage permissions in AWS Organizations. SCPs restrict the actions allowed for accounts within the organization making each one of them compliant with your guidelines. SCPs are not meant to grant permissions; you should consider ...
New Content: Focus on DevOps and Programming Content this Month
This month our team of expert certification specialists released 12 new or updated learning paths, 15 courses, 25 hands-on labs, and four lab challenges! New content on Cloud Academy You can always visit our Content Roadmap to see what’s just released as well as what’s coming soon. Ja...
New Content: Get Ready for the CISM Cert Exam & Learn About Alibaba, Plus All the AWS, GCP, and Azure Courses You Know You Can Count On
This month our team of intrepid certification specialists released five learning paths, seven courses, 19 hands-on labs, and three lab challenges! One particularly interesting new learning path is Certified Information Security Manager (CISM) Foundations. After completing this learn...
Which Certifications Should I Get?
The old AWS slogan, “Cloud is the new normal” is indeed a reality today. Really, cloud has been the new normal for a while now and getting credentials has become an increasingly effective way to quickly showcase your abilities to recruiters and companies. With all that in mind, the s...
The 12 AWS Certifications: Which is Right for You and Your Team?
As companies increasingly shift workloads to the public cloud, cloud computing has moved from a nice-to-have to a core competency in the enterprise. This shift requires a new set of skills to design, deploy, and manage applications in cloud computing. As the market leader and most ma...
AWS Certified Solutions Architect Associate: A Study Guide
Want to take a really impactful step in your technical career? Explore the AWS Solutions Architect Associate certificate. Its new version (SAA-C02) was released on March 23, 2020. The AWS Solutions Architect - Associate Certification (or Sol Arch Associate for short) offers some ...
New Content: AWS Terraform, Java Programming Lab Challenges, Azure DP-900 & DP-300 Certification Exam Prep, Plus Plenty More Amazon, Google, Microsoft, and Big Data Courses
This month our Content Team continues building the catalog of courses for everyone learning about AWS, GCP, and Microsoft Azure. In addition, this month’s updates include several Java programming lab challenges and a couple of courses on big data. In total, we released five new learning...
Where Should You Be Focusing Your AWS Security Efforts?
Another day, another re:Invent session! This time I listened to Stephen Schmidt’s session, “AWS Security: Where we've been, where we're going.” Amongst covering the highlights of AWS security during 2020, a number of newly added AWS features/services were discussed, including: AWS Audit...
AWS re:Invent: 2020 Keynote Top Highlights and More
We’ve gotten through the first five days of the special all-virtual 2020 edition of AWS re:Invent. It’s always a really exciting time for practitioners in the field to see what features and services AWS has cooked up for the year ahead. This year’s conference is a marathon and not a...
WARNING: Great Cloud Content Ahead
At Cloud Academy, content is at the heart of what we do. We work with the world’s leading cloud and operations teams to develop video courses and learning paths that accelerate teams and drive digital transformation. First and foremost, we listen to our customers’ needs and we stay ahea...
Excelling in AWS, Azure, and Beyond – How Danut Prisacaru Prepares for the Future
Meet Danut Prisacaru. Danut has been a Software Architect for the past 10 years and has been involved in Software Engineering for 30 years. He’s passionate about software and learning, and jokes that coding is basically the only thing he can do well (!). We think his enthusiasm shines t...