Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m

Next lesson playing in 5 seconds

Cancel

Free Preview: Develop and Deploy With Docker

Introduction

00:43
  • Overview
  • Transcript

Docker is a lightweight, portable tool that can free you from having to install server software on your local machine. The containers Docker creates can be started and stopped on any computer, easing deployment and configuration.

In this course, Envato Tuts+ instructor Reggie Dawson will teach you how to use Docker to create and manage portable web development environments. You'll learn how to modify images for your own use and share them on the Docker hub and how to use Kitematic, the GUI interface for Docker. Finally, you'll see how to create some practical web server instances for NGINX and WordPress, and how to set up a portable development environment using Codebox.

1. Introduction

1.1 Introduction

Docker is a tool that allows us to create isolated containers to host our applications. Unlike virtualization, these containers are lightweight and portable, as opposed to something like VMware, Docker will generally require less resources to run. Docker has gained widespread adoption by both developers and Dev Ops personnel. Developers love Docker because they don't have to concern themselves with making sure they have all of the latest patches and updates necessary on their system. By using Docker, it is easy to keep all of this in sync and the developer focused on coding. In this course, you will learn to use Docker to host your own projects and see some ways you can benefit from the platform. Why don't you take some time to learn to use Docker for deployment?

2. Starting With Docker

2.1 What Is Docker?

Hello everyone. This is Reggie Dawson. Welcome to the Docker for Deployment course for Tuts+. As a developer, we're often working with different platforms and frameworks. As a result we need to install various packages and dependencies to support these platforms. These multiple platforms often lead to problems due to incompatibilities between them. In a perfect world, we could find some way to isolate these environments. This is where Docker comes in. The first thing you need to understand is that Docker is not virtualization such as what is offered by something like VMWare. With VMWare, we use virtual machines which require resources to run. The virtual machines also have their own operating system, which also requires resources from the host. As a result, you need a machine with a lot of memory to run multiple virtual machines. Docker uses containers instead of virtual machines, these containers require resources but do not have their own operating system. Instead the containers run as isolated instances that use the host operating system kernel. What this means is that Docker doesn't require the overhead of standard virtualization. These containers encapsulate an installed application versus a whole operating system. This makes Docker desirable to developers, as they don't need to worry about the underlying OS and can just concern themselves with their application. It also allows us to use Docker to offer portable development environments with all of the dependencies needed already installed. This allows developers to get up and running with duplicate development environments quickly. No more spinning up virtual machines and installing software because once we have our image it can be easily distributed. Many people have stayed away from Docker due to the fact that it only runs on Linux based systems. Truthfully it is good to know how to manage Docker using the terminal but as you will learn in this course, there is also workflow for both Macs and PCs. As a result you will see that Docker is a viable alternative for local development. When building an app or a site we often need a web server to preview our work. As you will learn this is a simple thing to set up with Docker. If you are developing a WordPress theme and need an environment to test in, Docker is also a good choice. The important thing is that Docker keeps your development environment separate from your local machine. After years of supporting PCs I can tell you that the easiest way to mess up your machine is to install buggy development software that has just been released. Not really a huge problem, but a half a day loss restoring a machine could be avoided easily by using Docker. Docker has also found heavy usage in dev ops. Essentially you can run and manage a data center of Docker containers, although that is outside the scope of this course. In this course we are first gonna learn how to install Docker on all platforms. First we will use a standard Linux command line to install Docker, then we will learn how to install the Windows-based Docker tools. After we have Docker installed we will learn how to find our images and launch containers from them. We will then go to the Docker hub and learn how to find the images we are looking for. Then we will use Kitematic and learn how to set up our containers. After that we will learn to manage our images and containers and we will even learn how to create our own images. After we create these images, we will upload them to the Docker hub, finally we will learn a little bit about networking Docker containers. After we understand Docker we will then use it to set up a couple web servers, a ghost server, a WordPress server and a cloud base IDE with the Ionic framework. In the next course we will get started by installing Docker