Learn how to deploy Docker applications to production

Learn everything you need to put a Dockerized application into production and then automate the deploy
4.0 (40 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
1,293 students enrolled Bestselling in Docker
Instructed by Emmet O'Grady IT & Software / Other
25% off
Take This Course
  • Lectures 17
  • Length 1.5 hours
  • Skill Level Intermediate Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2015 English

Course Description

Get a jumpstart with how to use Docker in production.

The course is not a beginners guide to Docker, instead think of it as the next step after learning the basics. In particular, in this course you will learn how to put any application inside a container and then how to put that container into production in a safe and reliable way. You’ll learn how to deploy containers manually and also how to automate the deploy of your containers. At the end of the course you will be able to write automated deploy scripts for any docker application!

The curriculum

In the first section of this course we will introduce the application that we will work with during the lectures. In the next section we’ll take a step back and talk about the different workflows we could use to get our containers into production. The next section will show you how to deploy manually. Finally we’ll automate the deploy process using Ansible.

Now is the time to learn Docker

Docker is taking the industry by storm, it is completely revolutionizing how software is being developed, tested and deployed to production. Now is an ideal time to learn about Docker.

Who should take this course?

The ideal student for this course is someone in a software developer or devops role who wants to learn how to start using Docker in production. The course is also suited for QA automation roles who are interested in using Docker to test their applications automatically. The ideal student will already have a very basic understanding of what Docker is and how it works, but you will be curious as to how to run Docker in production. The course is perfect if you want to get some practical Docker experience for your CV or in preparation for your next project. Maybe you want to use Docker for a personal project, or maybe your company is adopting Docker and you want to get a head start, in these cases you’ll get a lot out of this course.

30 day money-back guarantee

This course comes with an unconditional, 30-day money-back guarantee. If you are dissatisfied with the course for any reason simply request a refund and I'll give you all your money back, no questions asked.

What are the requirements?

  • You should have a basic understanding of Docker before taking this course. You should know what an image is and how to build, push and pull images
  • You should have a local workstation with Docker installed
  • If you use Windows you will need a Unix flavoured VM in order to follow the examples in the "Automating with Ansible" section (Ansible doesn't work in Windows)

What am I going to get from this course?

  • Write scripts to deploy containers to production automatically
  • Design your own deployment workflow for putting changes into production
  • Containerize your own applications

Who is the target audience?

  • The course is designed for people who have already learnt the basics of Docker and are ready for the next step: putting things into production
  • Anyone in a software developer, devops or QA role will find this course highly interesting
  • The code examples are in python but the course does not require knowledge of any programming language
  • The course will help you plan a deployment workflow (getting things into production) that works for your specific use case

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction to this Course

In this short video I'll tell you the basic info you need to know before getting started with the course.


In this video you'll learn a little bit about me, your instructor.

In this video I want to share with you some of the reasons why I love Docker containers.
Section 2: Containerizing your app

Here you'll get a sneak peek at what will be in this section: containerizing your application.


We'll have a quick look at the sample application that we will be containerizing in this section so that we are familiar with how it works.

In this video we'll look at the Dockerfile that will containerize our application. After this lecture you'll

understand why we need each line and you'll be able to begin writing your own Dockerfiles.


In this video we will download a pre-built redis container and run it. Then we will start our application container and link them together. At the end of this lecture our application will be fully containerized!


In this lecture we'll look at the docker-compose.yml file that will let us start up our containers with one simple command.

2 questions

A quick quiz to test you on some of the topics that we covered in this section.

Section 3: Deployment Workflows & Docker Registries

In this lecture we'll look at two simple deployment workflows. We'll also discuss Registries and their role in the workflow.


If you want to set up your own private docker registry, do so now. Alternatively, if you want to use a service like DockerHub or Quay, sign up with them so you're ready to jump into the next section.

Section 4: Deploying Manually

After this lecture you will be able to deploy your containers to production. We'll also see how to deploy new versions of your applications when you make changes to them.


In this lecture we'll discuss some gotchas and improvements to the previous lecture. We'll talk about setting up DNS entries, zero-downtime deployment of docker containers and putting reverse proxies in front of your containers.

Section 5: Automating the deploy with Ansible

In this video we'll introduce the idea of automating the deploy. We'll discuss Ansible and give you a very high level overview of what it is and how it works.


In this video we'll go into depth into the concepts of Ansible. After this you should be more comfortable writing Ansible playbooks for yourself.


It's time to install Ansible if you haven't already installed it. In this lecture you'll install Ansible on your local machine.


In this lecture we'll look at the ansible playbook which will deploy our application and we'll run the playbook for the first time against our own servers. After this we'll be able to run this script as many times as we want to, each time it will deploy our application to the latest version.

Section 6: Final Words

In this video we'll quickly recap over what we learned so that it's fresh in your mind.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Emmet O'Grady, Software Engineer & Docker Ninja

My name is Emmet O’Grady, I’m Irish. I‘ve been a PHP software developer since aound 2010. I have been interested in Docker since it was in version 0.7, back then it wasn’t nearly as stable as it is now although even then it was gaining popularity very quickly.

My main programming language is PHP, I love PHP because there are fantastic frameworks that make web development a breeze with it. Some people tell me that PHP is an ugly language to code in, and yes, it’s true that PHP makes it easy to write hacky, dirty code. Buuut, if you know what you’re doing you can also write really beautiful code, and I love beautiful code.

In my day job I’m a PHP developer but I love doing “devopsy” things too. In particular I’m very interested in the workflow from development to production. I have a huge dislike for manual testing and I dream of continuous deployment workflows with fully automated test suites that cover most problems so that a developer can push and forget, knowing that their change will go into production automatically if everything is ok, and that bugs will be caught before they can cause trouble in production.

I work on web applications mostly and I'm a big fan of Docker. I run all of my personal projects in docker containers in production, at the moment I have about 20 different containers running in production. I also help the companies that I work in to use Docker in their own applications.

I’m the co-organizer of the Docker Meetup in Barcelona and I love teaching Docker to anyone who wants to learn. I’m hugely excited to teach on Udemy and I really hope you enjoy my courses.

Ready to start learning?
Take This Course