The Docker For Devops From Development To Production

Updated for Docker v19.03+. Learn how to build and deploy web applications with Docker in an automated way.

Last updated 2022-01-10 | 4.2

- Learn how to deploy web applications with Docker
- Ability to serve your web app securely over SSL (HTTPS)
- Confidence to apply for DevOps positions at software companies

What you'll learn

Learn how to deploy web applications with Docker
Ability to serve your web app securely over SSL (HTTPS)
Confidence to apply for DevOps positions at software companies

* Requirements

* A computer with at least 4GBs of RAM running Windows
* OSX or Linux

Description

From Docker novice to DevOps expert in 7 hours

Huge update for 2020: Many videos from this course were completely re-recorded to bring everything up to date. All of the Docker content is up to date as well as all of the other technologies we use, such as nginx, Ubuntu, Debian and more!

Looking to level up your skills by deploying your own web application? How about furthering your career by picking up years worth of general DevOps skills?

Prepare to get excited about Docker (and this course)!

Dozens of massive companies are using Docker every day but the awesome thing about Docker is it works incredibly well even for the smallest projects.

Nowadays learning about Docker and general DevOps skills is gaining massive momentum in the tech scene. It's similar to how mobile app development was a few years ago.

Companies are EXPECTING new developers to manage the full life cycle of their web applications. This means BOTH developing and deploying your apps.

Here's your chance to STAY AHEAD OF THE CURVE.

The Docker for DevOps course isn't just your run of the mill introduction to Docker course, you can get that info by skimming Docker's website.

This course shows you WHAT you can build with Docker and HOW to do it -- of course you'll learn the Docker basics along the way!

Together we'll walk through developing and deploying a multi-service Flask and Ruby on Rails application (more framework examples will be provided as bonus lectures too).

Oh and don't worry, you won't need Flask or Ruby on Rails experience to understand this course. The emphasis is on deploying a web application, not building one.

Learning by example is a great way to retain information and learn quickly.

"The course has a perfect balance between theory and practical material. At the end of the course, you have a working and secured web app with fully automated deployment along with an understanding of how it works. This is exactly what I wanted from the course."


Ready to level up?

Here's what you'll get when you sign up to my course today:

  • You'll learn how to get your development environment set up to run Docker. Windows, Mac and Linux users will be able to follow along.

  • Next, you'll learn the Docker basics and we'll complete a hello world example.

  • You'll Dockerize a Flask or Ruby on Rails application and pickup a few best practices on how to create a production ready application with those frameworks.

  • You'll learn how to create a staging server so you can test your app.

  • You'll learn how to keep your app running forever by getting a crash course with systemd.

  • You'll learn how to configure and serve your app over SSL (HTTPS) with nginx.

  • You'll get $10 in free hosting credits on DigitalOcean to deploy your application.

  • You'll learn how to purchase and configure a domain name (and make it work with your new server).

  • Finally, you'll learn how to obtain a FREE SSL certificate and hook it up.


I'll also give you tips on where to go next for topics such as:

  • Adding more services to your app

  • Scaling out beyond 1 host

  • Monitoring and alerting

  • Hooking up a continuous integration pipeline

  • Dealing with centralized logging

  • Looking into using various configuration management tools


You're getting all of that AND additional bonus lectures for just $25.

This course is jam packed with over 100 lectures, 7+ hours of videos and quizzes. You'll also receive full PDF text directions for each video lecture and complete source code examples.

"This course was really well put together and covers a wide range of topics around both DevOps and Docker. I chose it primarily for the Docker side, but learned a lot about Ruby and Python too. I am very pleased with this course."

Why is it worth using Docker?

  • Saves a ton of time and headaches when setting up development environments.

  • Easily move an application across environments or servers.

  • Removes issues such as "well, it worked on my machine!".

  • Makes developing with teams a much more pleasant experience.

  • Works on most major platforms.

  • Has amazing support on most cloud hosting providers.

  • You won't need expensive hosting to deploy your web applications.

  • Docker as a company is well funded and moving forward quickly.


"Well structured course with high quality information. Source code is really well written and well structured. The tutor support is like 24/7. He replied to my all questions within few hours and most of the times in few minutes."

Why is this course for you?

After finishing this course you'll have enough knowledge about Docker and general DevOps skills to start applying for jobs, so by investing in this course you're jump starting your DevOps career.

Or perhaps you have a thirst to broaden your skill set and want to save a ton of time by avoiding the tedious task of researching all of these topics on your own.

In either case, you're going to walk away with years of knowledge and best practices that I've accumulated while working as a consultant.

"Meticulous hands-on descriptions and recipes of how to utilize Docker and a lot of associated software in the real world scenario of building a web-app! I especially enjoyed the clear delivery of content: well structured, superbly produced, written summaries for each shown topic."

Who am I?

Hi, I'm Nick. I'm a consultant by day and open source contributor by night. I write software and help companies being their ideas to life.

I love learning new things and then sharing my knowledge with others.

I don't have a fancy degree but I do have experience shipping code and explaining my thought process to others while I talk about various technical topics.

Who this course is for:

  • Anyone who wants to learn how to use Docker
  • Anyone who wants to deploy a web application in an automated way
  • Anyone who wants to save money by self-hosting their own web apps
  • Anyone who wants to further their career by improving their DevOps skills

Course content

14 sections • 107 lectures

What does the course cover? Preview 02:03

Learn the skills necessary to develop and deploy a web application with Docker and gain a number of DevOps related skills along the way.

Dealing with issues Preview 01:45

Life without Docker Preview 05:44

Explore the server deployment paths I have taken over the last few years which eventually lead me to learn and love working with Docker. Experience my pain without having to live it!

Introduction - Quiz

Test your knowledge of this section.

Preparing your system for Docker Preview 24:12

Install necessary tools so that you can install Docker on either Windows, Mac or Linux.

Preparing your system for Docker - Text directions Preview 2 pages

Installing Docker Preview 10:44

Learn how to install a specific version of Docker. Don't worry, if Docker gets updated I will create a bonus lecture which explains what needs to change. This ensures you're always running the latest most awesome version of Docker.

Installing Docker - Text directions Preview 1 page

Installing additional Docker tools Preview 05:03

Learn how to install a specific version of Docker Compose. If Docker Compose gets updated in the future I will include a bonus lecture which shows you what you can do to upgrade to the latest version.

Installing additional Docker tools - Text directions Preview 1 page

Installing Sublime Text Preview 03:13

Get your development environment situated with a free to use code editor. You are free to use whatever you want, but I included this just so you have something to follow along with.

Installing Sublime Text - Text directions Preview 1 page

Getting setup - Quiz

Test your knowledge of this section.

What is Docker? Preview 02:10

Learn what Docker is along with common Docker related terminology. You will learn what the difference is between Docker and a Virtual Machine and more.

Benefits of using Docker Preview 02:05

In this lecture you'll learn about 5 different areas of application development which all benefit greatly from using Docker. You'll soon see using Docker is a no brainer decision.

Docker hello world Preview 08:35

Work through a simple hello world example while exploring some of what Docker can do.

Docker hello world - Text directions Preview 1 page

Working with a Docker Registry Preview 06:20

Get situated with using the official Docker Hub and learn all about what a Docker Registry is.

Working with a Docker Registry - Text directions Preview 1 page

Docker basics - Quiz

Test your knowledge of this section.

Setting up a project directory Preview 01:33

Prepare your system to create either the Flask or Ruby on Rails application that we will build and deploy with Docker.

Setting up a project directory - Text directions Preview 1 page

Building a Dockerized web app - Quiz

Test your knowledge of this section.

Project scaffolding Preview 03:01

Create the basis of a Flask application.

Project scaffolding - Text directions Preview 1 page

The Dockerfile Preview 22:54

Learn about what problems a Dockerfile solves and how to create a production ready Dockerfile to run a Flask application.

The Dockerfile - Text directions Preview 1 page

Docker Compose Preview 22:49

Learn how to use Docker Compose to manage multiple Docker containers.

Building the app Preview 20:33

Create a 12 factor Flask application which is optimized for both development and production.

Building the app - Text directions Preview 2 pages

Dockerized Flask app - Quiz

Test your knowledge of this section.

Project scaffolding Preview 01:09

Create the basis of a Ruby on Rails application.

The Dockerfile Preview 08:24

Learn about what problems a Dockerfile solves and how to create a production ready Dockerfile to run a Ruby on Rails application.

The Dockerfile - Text directions Preview 1 page

Docker Compose Preview 10:17

Learn how to use Docker Compose to manage multiple Docker containers.

Building the app Preview 08:59

Create a 12 factor Ruby on Rails application which is optimized for both development and production.

Building the app - Text directions Preview 2 pages

Dockerized Rails app - Quiz

Test your knowledge of this section.

Benefits of a staging server Preview 00:58

Learn why it's important to use a staging server and how it can prevent catastrophic errors in production.

Picking an operating system Preview 04:09

Gain insight on a variety of different operating systems, and eventually pick one which we'll deploy our web application to.

Why can't we use Vagrant? Preview 03:31

Learn why using Vagrant to provision a staging server is questionable and how we can set up a staging server using alternative methods.

Provisioning the staging server Preview 07:30

Walk through the steps of provisioning a staging server.

Provisioning the staging server - Text directions Preview 1 page

Installing sudo Preview 03:51

Learn how to install sudo on the staging server.

Installing sudo - Text directions Preview 1 page

Setting a static IP address Preview 06:04

Learn how to set up a static IP address on the staging server. Along the way you'll gain some general networking knowledge.

Setting a static IP address - Text directions Preview 1 page

Setting up SSH Preview 08:01

Learn how to configure SSH securely on the staging server.

Setting up SSH - Text directions Preview 2 pages

Installing Docker Preview 02:35

Learn how to install Docker in a consistent way on the staging server.

Installing Docker - Text directions Preview 1 page

Operation automation Preview 20:14

Learn how we can take everything we just did to the staging server and automate it. This removes the chance of human error and lets you set things up very quickly.

Operation automation - Text directions Preview 2 pages

Pulling the Docker images Preview 04:30

Learn how to automatically pull down all of the Docker images our web application depends on.

Pulling the Docker images - Text directions Preview 1 page

Pushing the web app Preview 08:43

Learn how to deploy the web application in an automated way so that all you have to do is git push your code and relax.

Pushing the web app - Text directions Preview 1 page

Securing your staging server Preview 04:56

Learn how to configure an industry standard firewall in a secure and efficient way.

Securing your staging server - Text directions Preview 1 page

Spinning up a staging server - Quiz

What is systemd? Preview 02:07

Learn what systemd is and how it helps you manage all of your Docker containers.

Creating your first unit files Preview 10:58

Learn how to create a few files that you'll be able to load into systemd.

Creating your first unit files - Text directions Preview 1 page

Exploring the updated deploy script Preview 09:41

Learn how to update the deploy script we build last section so that all of your unit files get automatically copied to the staging server.

Exploring the updated deploy script - Text directions Preview 2 pages

Crash course with systemd - Quiz

What is nginx? Preview 05:11

Learn what nginx is and how this amazing piece of software will handle common tasks associated to serving a web application.

Customizing the official nginx image Preview 11:00

Learn how to customize the official nginx image by creating custom nginx configs and even create your own makeshift template engine to paramertize a few values.

Customizing the official nginx image - Text directions Preview 1 page

Creating self signed SSL certificates Preview 05:36

Learn how to create proper self signed SSL certificates.

Create self signed SSL certificates - Text directions Preview 1 page

Updating the deploy files Preview 16:08

Learn how to take everything you've learned in this section and apply it to the deploy script so that you can automatically set up nginx in seconds on any server you provision.

Updating the deploy files - Text directions Preview 3 pages

Adding nginx into the mix - Quiz

Picking a hosting provider Preview 03:23

Learn what makes a hosting provider good and then eventually choose one of the best cloud hosting providers available today.

Signing up with Digital Ocean Preview 01:38

Learn how to sign up with Digital Ocean and also receive $10 in free credits so you can follow along without investing anything extra.

Signing up with Digital Ocean - Text directions Preview 1 page

Creating a new droplet Preview 18:08

Learn how to create a new droplet on Digital Ocean.

Creating a new droplet - Text directions Preview 1 page

Preparing your droplet Preview 14:51

Learn how to update the deploy script so that you can provision a brand new server in seconds.

Preparing your droplet - Text directions Preview 4 pages

Creating a production server - Quiz

Picking a domain registrar Preview 02:19

Learn what makes a domain registrar good. The one we use has some of the best prices available and is feature rich.

Picking a domain registrar - Text directions Preview 1 page

Purchasing and configuring a domain Preview 04:14

Learn how to buy a domain name and configure it so that it works with the server you created in the previous section.

Registering a domain name - Quiz

Picking a certificate authority Preview 02:19

Learn what makes different SSL certificate authorities good or bad.

Signing up with a free authority Preview 2 pages

Learn how to obtain an SSL certificate for free.

Signing up with a better authority Preview 1 page

Learn how to use a better SSL certificate authority which will get you going in no time.

Investigating Let's Encrypt Preview 01:48

Learn how Let's Encrypt will change the industry when it comes to obtaining SSL certificates.

Investigating Let's Encrypt - Text directions Preview 1 page

Using your certificates in production Preview 04:18

Learn how to take the SSL certificate you just obtained and hook it up so that it works on your production server.

Using your certificates in production - Text directions Preview 1 page

Verifying the certificates are graded an A+ Preview 01:45

You'll learn how to configure SSL in such a way that it will top the charts on an industry standard SSL testing platform that you can use for free. Your configuration will be optimized with security and robustness in mind.

Verifying the certificates are graded an A+ - Text directions Preview 1 page

Obtaining an SSL certificate - Quiz

Congrats, you finished the main course Preview 00:33

Adding more services to your web app Preview 02:54

Learn how you can expand on the Flask and Ruby on Rails application that we've built by including more services to the application. This pattern will be repeatable for whatever you want to add in the future.

Planning to scale Preview 11:20

Get an analysis on a number of ways to both vertically and horizontally scale a server composed of many Docker containers.

Planning to scale - Text directions Preview 1 page

Monitoring, metrics and alerting Preview 16:00

Get an analysis on a number of ways to configure system health checks and monitoring on your server, or cluster of servers if you choose to scale out.

Monitoring, metrics and alerting - Text directions Preview 1 page

Exploring Continuous Integration (CI) Preview 05:23

Get an analysis on a number of different Continuous Integration platforms and even learn what tools you can use to build your own solution.

Centralized logging Preview 04:13

Evaluating configuration management tools Preview 03:51

Get an analysis on a number of configuration management tools that you can use with Docker to help provision your servers in an even more efficient way.

Evaluating configuration management tools - Text directions Preview 1 page

Setting up automated database backups Preview 16:19

Learn how you can perform automated PostgreSQL database backups from either a local or remote server.