Getting Started With Docker: How to Use it in the Cloud

(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.Docker logo
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.

Avatar

Written by

Andrea Colangelo

Software Engineer with a solid focus on QA and an extensive experience in ICT. Above all, Andrea has a very strong interest in Free and Open Source Software, and he is a Debian and Ubuntu Developer since years. Non-tech interests include: Rugby, Jazz music and Cooking.


Related Posts

Connie Benton
Connie Benton
— April 1, 2020

How To Build a Career with AWS Certifications

From Iaas and PaaS solutions to digital marketing, cloud computing reshapes the world of technology. As the influence of this technology grows, so does investment. Tens of billions of dollars are being spent on cloud computing-related services each year. This influx is continuing to inc...

Read more
  • AWS
  • Certifications
Vijayakumar Athithan
Vijayakumar Athithan
— March 27, 2020

What is Cognito in AWS?

Web applications usually allow a valid username and password combination for successful sign in to the application. Modern authentication flows incorporate more approaches to ensure user authentication. When using AWS, this is no exception, thanks to the abilities and features offered b...

Read more
  • AWS
  • AWS Cognito
  • Solutions Architect
Avatar
Andrew Larkin
— March 20, 2020

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...

Read more
  • AWS
  • AWS Certifications
Alisha Reyes
Alisha Reyes
— March 17, 2020

Cloud Academy’s Blog Digest: How Do AWS Certifications Increase Your Employability, How to Become a Microsoft Certified Azure Data Engineer, and more

With everything going on right now, it's likely that the only thing you've been reading lately is related to the coronavirus pandemic. It's important to stay informed during these times, but it's also good to jump into something that can take your mind off of the current situation for j...

Read more
  • AWS
  • Azure
  • blog digest
  • Certifications
  • Cloud Academy
  • programming
  • Security
Avatar
Cloud Academy Team
— March 13, 2020

Which Certifications Should I Get?

As we mentioned in an earlier post, 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 compan...

Read more
  • AWS
  • Azure
  • Certifications
  • Cloud Computing
  • Google Cloud Platform
Alisha Reyes
Alisha Reyes
— March 7, 2020

New on Cloud Academy: Intro to GitOps; AWS Courses; Java, Python, Amazon Linux 2, Ubuntu, & Docker Playgrounds; and much more

New Lab Playgrounds This month, our Content Team released six new "playground labs." Our playground labs provide a safe and secure sandbox environment for you to explore your own ideas, follow along with Cloud Academy courses, or answer your own questions — all without having to instal...

Read more
  • AWS
  • Azure
  • gitops
  • Google Cloud Platform
  • lab playground
  • programming
Alisha Reyes
Alisha Reyes
— March 6, 2020

New on Cloud Academy: Intro to GitOps; AWS Courses; Java, Python, Amazon Linux 2, Ubuntu, & Docker Playgrounds; and much more

New Lab Playgrounds This month, our Content Team released six new "playground labs." Our playground labs provide a safe and secure sandbox environment for you to explore your own ideas, follow along with Cloud Academy courses, or answer your own questions — all without having to instal...

Read more
  • AWS
  • Azure
  • gitops
  • Google Cloud Platform
  • lab playground
  • programming
Patrick Navarro
Patrick Navarro
— March 4, 2020

AWS Certifications: How Do They Increase Your Employability and Progress Your Career?

AWS certifications are no walk in the park. They’re designed to validate in-depth, specialist knowledge and comprehensive experience, often requiring months of dedicated studying to earn even for those already working with the cloud platform. But the rewards that AWS professionals ca...

Read more
  • AWS
  • AWS certification
  • certification
Avatar
Chandan Patra
— February 21, 2020

Elasticsearch vs. CloudSearch: AWS Cloud Search Choices

Elasticsearch vs. CloudSearch: What's the main difference? Let's compare AWS-based cloud tools: Elasticsearch vs. CloudSearch. While both services use proven technologies, Elasticsearch is more popular, open source, and has a flexible API to use for customization; in comparison, CloudS...

Read more
  • AWS
  • Azure
  • cloudsearch
  • elasticsearch
Avatar
Andrew Larkin
— February 13, 2020

Cloud Academy Content Roadmap Updates

Welcome to our Q1 2020 roadmap. This is the content we plan to build over the next three months, between February 1 - and April 30, 2020. Let's look at some of our roadmap highlights. Atlassian Bamboo for CI/CD We had a lot of requests for practical guides on how to apply DevOps tool...

Read more
  • Artificial Intelligence
  • AWS
  • Azure
  • Docker
  • Google Cloud Platform
  • Kubernetes
  • Machine Learning
Alisha Reyes
Alisha Reyes
— February 7, 2020

New on Cloud Academy: Git Labs, CKA and CKAD Lab Challenges, AWS and Azure Learning Paths, AGILE, and Much More

We just kicked off our first Free Weekend of 2020. This means we've unlocked our Training Library for just 72 hours. Until Sunday at 11:59 pm (PST), you can get unlimited access to our industry-leading learning paths, courses, certification prep exams, and our most popular hands-on labs...

Read more
  • agile
  • AWS
  • Azure
  • Google Cloud Platform
  • Linux
  • OWASP
  • programming
  • red hat
  • scrum
Avatar
Stuart Scott
— February 6, 2020

How to Encrypt an EBS Volume

Keeping data and applications safe in the cloud is one of the most visible challenges facing cloud teams in 2020. Cloud storage services where data resides are frequently a target for hackers, not because the services are inherently weak but because they are often improperly configured....

Read more
  • AWS
  • EBS
  • Encryption