Sökresultat för

Kurs om
Docker och Docker Compose

I denna kurs får du lära dig allt du behöver veta om Docker för att bygga och driftsätta applikationer i containrar. Du får lära dig om såväl Compose för att assemblera ihop flera images till ett kluster av containrar, som Dockerfile för att designa egna applikations images.

2 dagar Beginner Dev-Ops Docker
Docker och Docker Compose

I denna kurs får du lära dig allt du behöver veta om Docker för att bygga och driftsätta applikationer i containrar. Du får lära dig om såväl Compose för att assemblera ihop flera images till ett kluster av containrar, som Dockerfile för att designa egna applikations images.

Detta får du lära dig på kursen

Här är ett sammandrag i punktform av vad du får lära dig på kursen. Eftersom kursmaterialet är författat på engelska, så återger vi sammandraget också på engelska.

  • Create containers using existing docker images for your application
  • Create container clusters using docker compose
  • Create your own docker images using Dockerfile and docker build
  • Combine Compose with Dockerfile
  • Configure web servers and database servers
  • Utilize docker networks
  • Create an Ubuntu image from scratch

Kursfakta

Här finner du alla detaljer om kursen.

  • Kursnamn

    Docker och Docker Compose
    Docker & Docker Compose (eng.)
  • Varaktighet

    2 dagar
  • Nivå

    Beginner
  • Målgrupp

    Programutvecklare
  • Förkunskapskrav

    Erfarenhet av programmering i något språk
  • Program & Verktyg

    • Docker CLI
    • Docker Desktop
    • WSL2 @ Windows 10/11 || Mac || Linux
    • MS Visual Code || JetBrains IDE || any decent text editor
    • Chrome || Edge || Firefox
    • JetBrains DataGrip || HeidiSQL || any db client
    • Google Cloud (GCP) account
    • GCP CLI (gcloud)
  • Publicerad

    22 augusti 2023

Background / Overview

  • History
  • What is a (Docker) container?
  • Containers vs. Virtual machines
  • Fundamental concepts
  • Docker Hub
  • What is behind Docker?
  • How does Docker run on Windows?

Using Docker

In this section we will use the docker CLI to pull and launch various ready-made docker applications.

Installation

  • Docker Desktop
  • System requirements Windows computers
  • System requirements Mac computers
  • System requirements Linux computers
  • Installation of Docker Engine
  • Extensions

Brief about Linux

  • Linux distributions
  • Distribution versions and their names
  • Debian vs. Ubuntu vs. Alpine
  • Installing program packages in Linux
  • Essential Linux commands

Basic Docker Commands

  • Using the Docker CLI - docker
  • Getting help information
  • Download an image - docker pull
  • Pull from a different registry
  • List images
  • Remove an image
  • Create/launch a container
  • List containers
  • How step into a container
  • Copy files to/from a container
  • Remove containers
  • How container names are created
  • Stopping/starting containers
  • Obtain run-time information
  • Port mapping

Docker Volumes

  • Persisting data
  • Volume types
  • Create a named volume
  • Local development using Docker
  • Example: compile a C++ program without an installed compiler
  • Volume maintenance actions
  • Finding the volume file in the host file system

Configuration

  • How to configure a server?
  • How to pass environment variable values
  • How to connect to a database
  • Sample usage of an MySQL database

Docker Cluster

In this section we will run more than one container and let them interact with each other. You will learn about docker networks and docker compose.

Brief Network Theory

  • How do a computer communicate with another computer
  • What is an IP number
  • What is a port number
  • What is a hostname
  • What is a network
  • What is DNS
  • What is IPv6
  • How to use ifconfig
  • What is a loopback address
  • What is a private IP
  • What is a subnet
  • What is CIDR
  • Special CIDR addresses
  • Address allocation
  • Route table
  • What is a firewall
  • What is NAT / IP masquerading

Docker Network

  • What is a Docker network
  • Network types
  • Default networks
  • Meta-data about a network
  • Create a Docker network
  • Associate a container with a network
  • How to containers might interact

Docker Compose

  • What is docker compose and its purpose
  • Background
  • What is YaML
  • Elements of a compose script
  • Creating a compose script
  • Creating and running a compose service
  • Commonly used compose actions
  • Introspective compose actions
  • Command-line options
  • Dealing with configuration data
  • Setting a simple WordPress system with a MySQL database
  • Using so-called secrets
  • Service dependency
  • Health checks
  • Restart policy
  • YaML extensions used in compose scripts

Creating Images

In this section we will learn how to create our own image, using a Dockerfile.

Dockerfile

  • What is a Dockerfile
  • Dockerfile syntax
  • The most essential directives of a Dockerfile
  • Create an image - docker build
  • Simplest possible Dockerfile
  • How to build and run it
  • Understanding and settings Docker tags
  • A still simple, but more realistic Dockerfile
  • The Express.js server code
  • Running the system outside Docker
  • The Docker file
  • Build the image
  • Create and run a container with our Express.js app

More Dockerfile Directives

  • Additional ways to feed the build
  • Using a .dockerignore file
  • More Dockerfile directives
  • Two variants of command
  • Change the default shell
  • Different RUN command forms
  • Understanding here-document syntax
  • ENTRYPOINT vs. CMD
  • COPY vs. ADD
  • Environment variables (ENV)
  • Configuration variables (ARG)
  • How to create user and group on Debian/Ubuntu/Alpine
  • Change the owner of files
  • Tell Docker which user to run as

Multi-Stage Dockerfile

  • Let's start with a simple Java application
  • Sample build & run
  • What is the container size?
  • Understand build-time vs. run-time
  • Setting up a multi-staged build
  • Improved Dockerfile, with separation of build from runtime
  • Much better image size

Dockerfile - Best Practices

  • Why best practices
  • Use official images
  • Use version tag
  • Pick a small/lean image
  • Reorder to improve layer caching
  • Reduce the layer count
  • Remove stuff not needed any longer
  • Use .dockerignore
  • Use multi-staged build
  • Create dedicated user
  • Spell out options
  • Utilize parallel stages

Image from Scratch

  • How do we create a base/parent image
  • Using FROM scratch
  • Let's build an all-inclusive C++ application
  • Sample build & run
  • How to create Ubuntu image from scratch
  • Usage of debootstrap
  • Usage of docker import
  • Using our own parent image

Applications

Compose with Dockerfile

  • Compose script with build directives
  • Syntax for the build directive
  • Recommendation
  • Building compose images

Node.js: Express.js / TypeScript / Vite.js Application

  • Walkthrough of the source code

Java: Spring-Boot / MySQL Application

  • Walkthrough of the source code

C++: REST-WS Application

  • Walkthrough of the source code

Section: Publishing Images

In this section we discuss various ways of make your image available for others to use.

Registries & Repositories

  • What is a registry and a repository
  • Different forms
  • Importance of tagging
  • Generic step to publish and image

Docker Hub Registry

  • Using Docker Hub
  • Publish to Docker Hub
  • Pulling from your own corner of Docker HUb

Private Registry

  • What is a private registry
  • Installation of a private/local registry
  • Publishing to a local registry
  • Pulling from a local registry

Google Cloud (GCP) Registry

  • What is GCP
  • How Google supports containers
  • Publishing to a GCP registry
  • Pulling from a GCP registry

Här ser du vilka kursdatum som är tillgängliga. Klicka på en av datumknapparna för att anmäla dig till ett kurstillfälle. På kursen pratar läraren svenska, medan vårt kursmaterial alltid är författat på engelska.

Missa inte vår samfaktureringsrabatt! Är ni fler personer från samma företag/organisation som går på samma kurs och kurstillfälle, rabatteras tillkommande personer med 25%. Ni kan anmäla er till kursen en och en, men uppger då samma företag, så ordnar vi resten. Samtliga deltagare från samma företag ingår då på samma faktura, den första till fullt pris och resterande till rabatterat pris.

Boka din plats på vår fjärrkurs, via Zoom

Fjärrkurs via Zoom

Du sitter bekvämt framför datorn och deltar i kursen via internet. Vi använder programvaran Zoom för alla våra fjärrkurser. I priset ingår kursmaterial som PDF.

Pris: 10 000 kr + moms

Background

Docker

2 dagar

Kursen vänder sig till programutvecklare och utgår från att deltagarna har erfarenhet av programmering i något språk.

Företagsanpassad kurs, vi kommer till er

Företagsanpassad kurs

Om ni är tre eller fler personer från samma företag eller organisation, kan ni beställa en företagsanpassad kurs. Då håller vi kursen på ett datum som passar er. Antingen på plats i era lokaler eller som en fjärrkurs. Vi kan också hålla den muntliga framställningen på engelska.

Kontakta oss för en offert

Företagsanpassad Kurs

Jens Riboe

Jens Riboe

Senior/Expert Software Developer

5.0 Instructor/Author Rating

50+
Courses Authored
1000+
Students Lectured
40+
Years Experience

Jag har programmerat sedan början på 1980-talet i en stor mängd olika programspråk och på olika plattformar. Har jobbat på både stora och små företag, både etablerade och startups, samt både inom och utom Sverige. Att skriva (elegant) programkod är det bästa jag vet. Denna erfarenhet och passion är den centrala komponenten i våra kurser. Något som gör oss unika på marknaden och att våra kunder återkommer år efter år för nya och fördjupade kunskaper.

View LinkedIn Profile

Relaterade Kurser

Background

BASH Shell Scripts

BASH

BASH Shell Scripts

Kurs om hur du skriver shell scripts i BASH

Background

Perl grundkurs

Perl

Perl grundkurs

Kurs om hur du programmerar i språket Perl

Background

Node.js grundkurs

Node.js

Node.js grundkurs

Kurs om hur du utvecklar applikationer i Node.js

Background

Amazon AWS Cloud

AWS

Amazon AWS Cloud

Kurs om att starta EC2 servrar, RDS databaser, VPC nättopologier, köra lambda funktion och mycket annat i AWS