Hello,
Whether or not you’re a Developer, anyone who works with code or servers will boost their productivity with Docker’s open app-building platform. In this course you will learn how to use the Docker products including:
1) Docker Toolbox
2) Docker Client
3) Docker Machine
4) Docker Compose
4) Kitematic
5) Docker Cloud
In addition, this course will cover how to work with images and containers, how to get your project running, and how to push it to the cloud, among other important lessons.
We first review what Docker is and why it is important. We then walk through a step-by-step guide for both Windows and Mac to install all the required components you are going to need for the class.
With your computer set up, we dive in the Docker Toolbox, the Docker Machine and Docker Client commands, and you’ll quickly appreciate how all these components help you in your development environment.
Next, you’ll learn to work with images, as well as Docker Containers, and how to link and manage them. After that, you’ll discover how to get a fully-functional development environment up and running, both locally and in the cloud! By the end of this course, you’ll be able to increase your productivity and create lightweight apps that run identically, no matter the environment.
Course Overview
We will quickly review the how to work with the exercise files. Please download them prior to starting the course.
Please note that some people have been the issues with the chapter 8/9 .docker folder not showing in the zip. I have attached the folder directly in the exercise files aka this lecture to help with this.
Why Use Docker
Docker is getting a lot of attention , and for good reason, but if you've looked into it all, you might have wondered what exactly is it, and is it something I can actually use as a web developer? I know when I first started reading about it, hearing about it at conferences ,
I really wondered if it was something that even played a role in what I did, and the more I dug in, the more I found out that, yeah, it actually can play a big role in our web development process, and that's what we're going to address in this first Section.
So let's look at these topics.
Topics:
- We will start off by talking about what exactly is Docker is, and we'll clarify some key terms and concepts that you need to know in order to be successful and to understand how Docker works.
- We will then take those concepts and talk about how we can apply them to improve out development process and workflow. You will be surprised by how many benefits there are.
- Next up we'll talk about the Docker tools and the role that they each play in this overall development workflow.
- Then we'll wrap up by seeing Docker in action, and I'll actually show an application that's using Docker to hit a database, do some caching, and some other aspects of a normal development workflow and development application. So let's go ahead and get started by answering that all-important question of, what is Docker, and then jump into the benefits it can offer us as developers.
We will start things off by answering the question, what is Docker? Docker does have some different terms, so we're going to clarify what those are, we're going to clarify where it can run, and how this all kind of works.
So Docker itself is just a lightweight, open, secure platform, this is kind of the official party line if you will. And the first time I heard that it didn't make maybe a whole lot of sense because I could think of several things that might fit a lightweight, open, secure platform definition, but really what Docker is a way to simplify the process of building applications, shipping them, and then running them in different environments. Now when I say environments, of course I'm talking about development, staging, production, and others that you may have at work.
We will then cover what actually ships with Docker then? Well we're going to be talking about things called images and containers, and containers are really, really important.
We will go over key buzzwords that are typically thrown around with Docker are images and containers.
In this Lecture we will go over how docker can benifit you as a developer.
Sowhether you're working on a team of one or many, Docker can help set up a
development environment very quickly, and that's really one of the key aspects
that we're going to focus on throughout this course. The Cool part is that's
just a very minor benefit of Docker overall, it's definitely a big benefit as a
web developer.
Now that you've seen what Docker is and some of the benefits that it can offer us as web developers, let's jump in really quickly to some of the Docker tools that we're going to be talking about and actually installing a little later in the course.
In demonstration I'm going to show you how you can bring a up three containers all at once and use. We have a wordperss container, a , MariaDb as the database, and PHPAdmin as our database administrator container.
In this section, you've learned what Docker is and seen how it can simplify building, shipping, and running applications across different environments.
Setting Up Your Development Environment
In this section, we're going to take a look at the process for setting up Docker Toolbox on your development machine and getting a development environment all set up and running.
I'm going to start off by introducing the process of installing Docker Toolbox on a Mac, and then I'll show the same process on a Windows machine.
Installing Docker Toolbox on Windows is as simple as walking through an installation wizard.So I'll show you how we can find that, download it, and get it running.
Guide to walk through installing docker on a mac
Kitematicallows us to visually search on Docker Hub,
for Docker images that other people have already published,. You can then and find an image you can bring
it down to your local machine and create, run, and then manage containers based on those images. In this lecture we will go over all that.
Demo time! Lets see some docker in action
** Docker 1.3 ** Installation and Updates - Docker Native For Mac/Windows/Server
In this section we will introduce what docker 1.12.* is all about and what you will be learning about in the course.
In this section we will review what docker for windows native is, and how to install it.
In this section we will review what docker for windows native with native windows containers is, and how to install and work with it.
In this section we will go over what docker for mac is and how it is different then the old boot2docker.
In this section we will go over how you can install docker on windows 2016 for both windows and linux native containers.
In this section we will go over how to install docker 1.12.* on linux.
Using Docker Machine and Docker Client
Review using Docker Machine and Docker Client Course Topics
Let's take a look at another tool in the Docker Toolbox called Docker Machine.
Now Docker Machine can be used to create and manage your local machines that you're going to be working, for instance, on your development environment machine.
In this Lecture we will go over Docker Machine on a Mac
In this Lecture we will go over Docker Machine on a Windows
In this lecture we will go over the Docker client tool, on a Mac, you can then
start working with Docker images and containers through the command line using
the Docker Client.
In this lecture we will review what we have learned
Adding Your Source Code into a Container
In the introduction we will review the the goals for this this section
In this lecture we will go over how Docker images and containers work, and discuss something called the layered file system.
Up to this point we've learned about the layered file system and how it works with images and containers, and how containers are a little bit unique and have their own thin, read/write type of layered file system, and we call that the container layer typically.
Up to this point you've learned about the layered file system and how it's used with images and containers, and we've also learned about the basics of volumes, but let's go a little more in depth into volumes and how we can actually use these to store some source code.
In this lecture we will go over how to link a node.js docker container to a volume and from their to your local development machine.
In this lecture we're going to take a look at how we can get asp.net source code into a running Docker container by using volumes.
In this lecture we will go over how you can clean up volumes as you delete your containers.
In this lecture we will review what we have learned
Building Custom Images with Dockerfile
In the introduction we will review the the goals for this this section
In this lecture we will review the Dockerfile
In this lecture we are going to build a custom docker file for node.js.
In this lecture we are going to take our Node.js Dockerfile and turn it into a custom image and container.
here we take the dotnet application we have been working on and build a docker file for it.
In this lecture we will go through how to build a custom asp.net/dotnet image and container.
We will take the images we have made and publish them to Dockefile
In this lecture we will review what we have learned
Communicating Between Docker Containers
In the introduction we will review the the goals for this this section
Will start working with Legacy linking to connect our containers.
We will start naming our containers for linking purposes.
This lecture will show how to link a Node.js Container and a MongoDB Container
In this lecture we will start working with Container Networks
In this lecture we will demo container networks
In this lecture we review how to link multiple containers
In this lecture we will review what we have learned
Managing Containers with Docker Compose
In the introduction we will review the the goals for this this section
In this lecture we will go over Docker Compose
In this lecture we will go over docker-compose.yml file
In this lecture we will review the Docker compose commands
In this lecture we will go put our knowledge to the test and demo docker compose
this lecture show you how to use docker compose on windows.
In the lecture we will go over docker's environmental vailables
In this lecture we will go over make a custom docker-compos.yml
In this lecture Managing Development Environmental Services
In this lecture we will review what we have learned
Running You Containers In The Cloud
In the introduction we will review the the goals for this this section
In this lecture we will start to work with docker cloud.
In this lecture we will link out docker cloud to a cloud provider.
In this section we look at how can deploy a node to our host provider using docker hub
In this course we will go over what a stack is and how to create one in Docker Cloud.
In this course we will review how to manage your stack in Docker cloud once it i
In this lecture we will review what we have learned
New **1.12** - Docker Swarm Mode
In this section we will go over what we will cover in docker swarm chapter
So we are going to start off , a few terms and some new concepts, but they're huge. Well we will review, the crux of what's new with Docker 1.12 and later is native clustering, but I'm talking about proper native clustering here.
We will finally get our hands dirty and build a swarm in a real world environment
Services are One of the major, major constructs introduced in 1.12, and they're all about simplifying and, I don't know, robustifying large-scale production deployments.
In this section we will see the p wer of a declarative desired state, and, the sheer simplicity of scaling.
We will take the service we built in the previous sections and update them with zero downtime
We will talk about the future of docker with stacks and DABS
We will review the topics covered in this chapter
Reviewing the Case for Docker
We will review all the great things we have learned
In this quiz will go over some questions that relate to this course
Bonus Material
A review of some of the Docker Hosting Options Available.
Whether you're developing a microservices-oriented software application, or looking for a better way to distribute a traditional, monolithic application, Docker Compose is a key tool in the developer's arsenal. Formerly known as Fig, Docker Inc. acquired the software, when its creators joined Docker in July 2014, barely a month after the release of the first supported version of Docker. Since then, Fig has evolved into Docker Compose, has been considerably enhanced, and is widely used by Docker adopters in their development practices.