Learning Path: DevOps with Docker

Course

Online

£ 40 + VAT

Description

  • Type

    Course

  • Methodology

    Online

  • Start date

    Different dates available

Dockerize your applications in no time at allDevOps might feel like it's still an emerging trend, but Docker is definitely here to stay. This rapid Learning Path will show you how to get up to speed with real-world containerization so that you can build and ship like an engineering professional.

Facilities

Location

Start date

Online

Start date

Different dates availableEnrolment now open

About this course

Build new Docker containers and find and manage existing ones
Use the Docker Index, and create your own private one by using containers
Discover ways to automate Docker, and harness the power of containers!
Build your own Docker powered mini-Heroku Paas with Dokku
Set up Docker on your environment based on your application’s custom requirements
Master Docker patterns and enhancements using the Ambassador and Minimal containers

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Emagister S.L. (data controller) will process your data to carry out promotional activities (via email and/or phone), publish reviews, or manage incidents. You can learn about your rights and manage your preferences in the privacy policy.

Reviews

This centre's achievements

2021

All courses are up to date

The average rating is higher than 3.7

More than 50 reviews in the last 12 months

This centre has featured on Emagister for 7 years

Subjects

  • Production
  • Install
  • Project
  • Image
  • Works
  • Server

Course programme

Beginning Docker 29 lectures 01:57:37 Beginning Docker - The Course Overview This video will offer an overview of the course. Getting Docker Inside a Vagrant VM See how to get your own Docker running using a local virtual machine that is controlled by Vagrant.
  • You want to use Docker but you've never installed it before. We'll get a VM set up with Docker.
  • Install Vagrant from the website
  • Set up Vagrantfile with "vagrant init 3scale/docker” and then run the "vagrant up” command
Containers Versus Virtual Machines Learn the difference between Docker containers and traditional virtual machines.
  • You don't know what a Docker container is, but you know what a virtual machine is. So we'll compare containers with virtual machines.
  • See how fast you can "get into" a VM as compared to a container, first with Bash and then with cat /etc/os-release. Then show the different distros.
  • VMs run a whole "system" of processes, whereas Docker is made to run just one process (with subprocesses) that you want using ps auxf
How Docker Works? Get a high-level overview of the objects Docker works with and how they are used.
  • Understand what Docker containers and images are, and see what the other major concepts that are used with Docker are.
  • Overview of the concepts of Docker: images, containers, Dockerfiles, and registries.
  • Understand the details of the layer file system and the relationships between images and containers
Running the Containerized Commands We have Docker and want to run a command in an isolated container, so we use "docker run" to work with commands in containers.
  • Run simple foreground commands, such as ls and ping. Attempt an interactive command with apt-get. Also, we introduce the --rm flag.
  • Run interactive commands, including 'bash', 'apt-get install', and 'vim'
  • Run a detached SSH server daemon. See how to kill a container process with 'docker kill', and see its output with 'docker logs'.
Managing Your Containers You want to manage containers once you've started creating them. You can list, inspect, view log, stop, and delete them with basic Docker commands.
  • List the active containers and then all containers. Inspect any container by ID or name.
  • Show the logs and learn the shortcut for the last container. Also, there’s a mention of Docker attach command.
  • Stop running the container and show the kill option. Remove old containers and mention the commit changes somewhere.
Committing Changes to a Container Image We want to make an image that has a package (sshd) already installed and configured. So, we'll use Docker commands to make a new image from an existing image.
  • Interactively install from a container from Ubuntu image
  • Inspect the changes that were made to the container file system
  • Commit the changes to a new image and test it out
Sharing a Container on the Index Once you've made a container you like, you would want to share it with others or make it easy for you to install on other machines. So, you have to push the container image to the Docker index.
  • Make a docker.io account and then login with Docker
  • Make sure that it's named properly and then push it into the Docker Index
  • See the container in the index. Delete the local image, pull it down from the index, and try it out.
Finding and Using Third-party Containers Making containers for everything we want to use in containers is difficult, so we can use ready-made containers. Find and use container images using the Docker index and the Docker ecosystem.
  • Search with the help of commands, check the index, and go to Dockerfile project.
  • Pull the Redis-server and run it
  • Run the Redis client in the container from the Redis image. Try it out and stop the container.
Writing and Building a Dockerfile We want to quickly and consistently produce and reproduce a container image, so we use a Dockerfile to define a container.
  • Create a directory with a file named Dockerfile
  • Add minimal Dockerfile contents: FROM, AUTHOR, and RUN
  • Use with 'docker build' to create an image from Dockerfile
Adding Files to Your Container We are making an image that uses a versioned configuration file, so we can add it to the container in the build process.
  • Put the configuration files inside the project directory
  • Put the ADD directive inside the Dockerfile
  • Build the Dockerfile and test it
Setting Default Container Properties We want to simplify the running process of our container, so we add metadata and defaults to the Dockerfile.
  • Use the CMD directive for the default command and use ENTRYPOINT for a forced, hidden command.
  • Change the process environment with the USER, WORKDIR, and ENV directives.
  • Set network forwarding with EXPOSE
Building on Existing Containers You have a container that you want to use but with some variations, so you will build a new container based on the existing image.
  • Create a Dockerfile from an existing image by using the FROM instruction
  • Add directives to customize or override existing containers
  • Use ONBUILD instruction for future images based on this previous image
Setting Up Trusted Builds We want others to trust our image in the Docker index, so we will set up trusted builds to automatically build from our GitHub repository.
  • Make a GitHub repository and upload your project directory
  • Create a Trusted Build from the Docker Index and wait for it to build
  • See it in the Index and pull to try it out
Constraining the Container Resource Using the Docker run command to improve performance, and exploring some of the features it provides us when running containerized commands.
  • Examine ways in which we can use Docker commands to prioritize the CPU for certain container processes
  • Use memory allocation tuning to improve the build’s performance
  • Run tests to demonstrate that the performance changes have had the desired effect
Overriding the Dockerfile Defaults Discover how to use docker run to override some of the defaults that come with containers, which are usually specified from their Dockerfiles.
  • Once you start using third-party containers, you may find that the way they’ve set up their containers is more limiting than helpful to you. Luckily, many of the settings that you can specify in Dockerfiles can be overridden with docker run arguments
  • How can we access inside of a container via a shell? See how we can do this easily by overriding the entrypoint to use /bin/sh instead.
  • We don’t always want to run as the default user; this can be incorrect or even dangerous at times. We show how we can specify the default user that we would like to run.
Using Volumes and Mounts Learn about Docker volumes and mounts and how we can use docker run to configure them for our containers.
  • The job of a process is to use and manage lots of data; we don’t want it to be part of the container. Instead, we use mounts and volumes.
  • Note that by default, these mounts are read-write. We will see how we can make them read-only.
  • Introduces and details the concept of volumes, which are basically directories of the host system managed by Docker.
Ports and Networking Learn about ports and networking with Docker and Docker Containers.
  • Take a look at the various ways in which you can publish ports. Then we will also talk about disabling the network altogether for extreme isolation.
  • Glance over the docker port command, which takes a container name or ID and then an internal port that has been exposed. Docker will then give us the interface and port that it’s actually listening on as the host
  • Learn how to customize the DNS settings used by your container with working examples
Linking Containers Similar to how we can"share" data volumes across containers, we can also "share" ports across containers so that they can communicate with each other.
  • If we want to restrict which containers can connect to us, we can use a Docker feature called Linking.
  • See how Linking will take any exposed ports of one container and make them directly accessible to another. It will also populate a number of environment variables for that container to discover how to connect to it.
  • Examine the working environment and demonstrate how we can connect to the linked container
Writing a Simple Application Although Docker is great for running backing services and infrastructure, its real value comes from shipping your application. Unlike the supporting infrastructure, your application will be updated and shipped quite frequently. Docker can make this process much easier. In order to demonstrate this, we’re going to build a simple web application to deploy with Docker.
  • Start with setting up the environment. We will install Redis, Python, and pip, a Python package manager. Remember that we’re installing these on our VM, not in a Docker container.
  • We start our app in another terminal session in our VM. We can curl this URL.
  • We make changes to our application and illustrate how it works prior to publishing it
Containerizing the Application Previously, we made a simple "Hello World" web application that uses Redis to increment a counter with every request. Now, we’re going to take this application and "Dockerize" it.
  • Create and configure our new application environment
  • Set up the Dockerfile to expose the required ports
  • Learn how our application is now containerized
Setting Up an Application Server Work through the process that is required to set up an application server to act as our production server to deploy on.
  • Understand the point about Docker that it can run containers consistently across all of these development environments
  • We make a simple cloud server our production environment that uses the digital ocean
  • Implement the Digital Ocean server set up, and link it to our Redis container.
Shipping the Container to Production Demonstrate how to effectively ship a container to another machine.
  • Show how to pull the Docker registry container
  • Details on how to tag our application and container and push them to the registry
  • Understand how to pull our container from other server and demonstrate it by running there
Creating a Simple Deployment Workflow We show how we can streamline the process and create an easy deployment workflow.
  • Learn how to create and tune a deploy-app script
  • Discuss the setup process: start a new container and expose the required ports
  • We show how we can run the "make" command to create and deploy our application for us
Using the Docker Remote API We will explore the idea of automation in Docker.
  • Take a look at the Docker API and set up the environment
  • Demonstrate hitting of the endpoint to retrieve a list of containers
  • Set up Python and pip and demonstrate the working of the interactive Python shell
Container Inside a Container Demonstrate how we can expose control of containers to other containers.
  • Expose the Docker Socket to a container
  • Use Docker binary and Unix Socket to use the container inside the container
Managing Docker Logs with logspout Explain the limitations of the in-built logging functionality.
  • Introduce logspout and explain how it works
  • Demonstrate installing logspout in a container and show it working
  • Review the logging options and how we can extend syslog using logspout
Creating Your Own PaaS with Dokku Building our own Docker-powered mini-Heroku platform-as-a-service using Dokku.
  • Publish changes to Git
  • Automatic deployment of those changes
Using Ambassador Containers Explore Docker pattern called ambassador.
  • Set up an ambassador locally on our Vagrant VM
  • See ambassador in action with Redis
Beginning Docker. 29 lectures 01:57:37 Beginning Docker - The Course Overview This video will offer an overview of the course. Getting Docker Inside a Vagrant VM See how to get your own Docker running using a local virtual machine that is controlled by Vagrant.
  • You want to use Docker but you've never installed it before. We'll get a VM set up with Docker.
  • Install Vagrant from the website
  • Set up Vagrantfile with "vagrant init 3scale/docker” and then run the "vagrant up” command
Containers Versus Virtual Machines Learn the difference between Docker containers and traditional virtual machines.
  • You don't know what a Docker container is, but you know what a virtual machine is. So we'll compare containers with virtual machines.
  • See how fast you can "get into" a VM as compared to a container, first with Bash and then with cat /etc/os-release. Then show the different distros.
  • VMs run a whole "system" of processes, whereas Docker is made to run just one process (with subprocesses) that you want using ps auxf
How Docker Works? Get a high-level overview of the objects Docker works with and how they are used.
  • Understand what Docker containers and images are, and see what the other major concepts that are used with Docker are.
  • Overview of the concepts of Docker: images, containers, Dockerfiles, and registries.
  • Understand the details of the layer file system and the relationships between images and containers
Running the Containerized Commands We have Docker and want to run a command in an isolated container, so we use "docker run" to work with commands in containers.
  • Run simple foreground commands, such as ls and ping. Attempt an interactive command with apt-get. Also, we introduce the --rm flag.
  • Run interactive commands, including 'bash', 'apt-get install', and 'vim'
  • Run a detached SSH server daemon. See how to kill a container process with 'docker kill', and see its output with 'docker logs'.
Managing Your Containers You want to manage containers once you've started creating them. You can list, inspect, view log, stop, and delete them with basic Docker commands.
  • List the active containers and then all containers. Inspect any container by ID or name.
  • Show the logs and learn the shortcut for the last container. Also, there’s a mention of Docker attach command.
  • Stop running the container and show the kill option. Remove old containers and mention the commit changes somewhere.
Committing Changes to a Container Image We want to make an image that has a package (sshd) already installed and configured. So, we'll use Docker commands to make a new image from an existing image Learn the difference between Docker containers and traditional virtual machines.
  • You don't know what a Docker container is, but you know what a virtual machine is. So we'll compare containers with virtual machines.
  • See how fast you can "get into" a VM as compared to a container, first with Bash and then with cat /etc/os-release. Then show the...

Additional information

A basic knowledge of working with the command line

Learning Path: DevOps with Docker

£ 40 + VAT