Others · WDC-72

Basic Docker

Basic Docker is a hands-on course in the fundamentals of Docker, from managing images and containers and writing multi-stage Dockerfiles to networks, volumes, multi-container systems with Docker Compose and publishing images to Docker Hub. It suits developers, system administrators and anyone comfortable with Windows or macOS who wants matching environments from development to production.

Updated
From 5,850 THB / person 6,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration12 hours · 2 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

The problem of software that runs on one machine but breaks on another comes from mismatched environments. Docker solves it by packaging an app with everything it needs into a container that runs the same way on a developer's laptop, a test server and production. It has become a core skill for developers and DevOps teams, and the starting point before moving on to Kubernetes and CI/CD.

This new edition takes you from installing Docker Desktop to managing images and containers, writing multi-stage Dockerfiles with current best practice, handling networks and volumes, and using Docker Compose with compose.yaml files and Compose Watch. You then work through workshops with a LAMP stack, WordPress, Node.js with React and Laravel, before publishing images to Docker Hub with GitHub Actions. (2 days, 6 hours per day, 12 hours in total, Beginner level.)

What you’ll gain

  • Understand the difference between virtual machines and Docker containers
  • Create, run and manage Docker images and containers
  • Write smaller, safer multi-stage Dockerfiles
  • Manage networks, volumes and bind mounts
  • Use Docker Compose to run multi-container systems for development and production
  • Publish images to Docker Hub and build them automatically with GitHub Actions

Who this course is for

  • Developers who want their development and production environments to match
  • PHP, Node.js or Python web developers who want to run projects in containers
  • System administrators and DevOps teams getting started with containers
  • Students and anyone interested who wants a foundation before learning Kubernetes

Prerequisites

  • Basic computer skills and confident use of Windows or macOS
  • Some ability to type commands in a terminal or command prompt
  • Able to search for information online
  • Experience writing web apps in PHP or JavaScript makes the workshops easier, but is not required

Curriculum

Course Details

This course is a 2026 edition that replaces the previous Basic Docker 2022 course, rewritten for the current Docker Desktop and Docker Compose. It runs for 2 days, 6 hours per day (12 hours in total, 09:00-16:00), as lectures alternating with labs and workshops throughout. Beginner level. Learners install Docker Desktop, manage images and containers, write multi-stage Dockerfiles, handle networks and volumes, use Docker Compose and Compose Watch, work through LAMP stack, WordPress, Node.js with React and Laravel workshops, and publish images to Docker Hub with GitHub Actions. They take home the Dockerfiles and Compose files for every workshop.

Day 1 Docker Fundamentals, Images and Dockerfiles

Section 1: Lab: Preparing Your Machine and Installing Docker Desktop

  • Recommended machine specifications and enabling virtualisation
  • Install Docker Desktop on Windows with WSL 2 and on macOS
  • An overview of installing Docker Engine on a Linux server
  • Install VS Code and extensions for Docker
  • Lab: check the installation with docker version and run hello-world

Section 2: An Overview of Docker and Containers

  • The difference between virtual machines and containers
  • Why use Docker, and the problems containers solve
  • Docker architecture: client, engine, images, containers and registries
  • The OCI standard and other tools that run containers
  • The Docker workflow from build to run

Section 3: Lab: Docker Images and Containers

  • Find and pull images from Docker Hub and choose a suitable tag
  • Create your first container, stop and start it, and the container life cycle
  • Port mapping, container names and environment variables
  • View logs and run commands in a running container with docker exec
  • Lab: run Nginx and a database, then clean up unused resources with prune

Section 4: Lab: Building Custom Images with a Dockerfile

  • Image layers, the build cache and ordering instructions for fast builds
  • Core Dockerfile instructions: FROM, WORKDIR, COPY, RUN, ENV, EXPOSE and CMD
  • .dockerignore and multi-stage builds for smaller images
  • Run containers as a non-root user and choose base images safely
  • Lab: generate a Dockerfile with docker init and adapt it to the project

Section 5: Lab: Networks and Volumes

  • User-defined bridge networks and reaching containers by name
  • Add containers to networks and separate networks by role
  • Named volumes for persistent database data
  • Bind mounts for editing code on your machine and seeing it in the container
  • Lab: an app and a database in separate containers talking over a network
Day 2 Docker Compose, Workshops and Publishing Images

Section 6: Lab: Docker Compose

  • What Docker Compose is, and the structure of a compose.yaml file
  • The docker compose up, down, ps, logs and exec commands
  • Define services, ports, volumes, networks and a .env file
  • depends_on with a healthcheck so the app waits for the database
  • Compose Watch for syncing code automatically during development

Section 7: Workshop: A LAMP Stack and WordPress

  • A Compose file for PHP with Apache and MySQL
  • Connect PHP to MySQL and test a CRUD API
  • Run WordPress with its database using Compose
  • Back up and restore data from volumes
  • Configure Apache, PHP and MySQL for production

Section 8: Workshop: Full Stack Node.js, MongoDB, React and Nginx

  • A Dockerfile for a Node.js API and environment variables for MongoDB
  • Connect Node.js to MongoDB and inspect the data in the container
  • A React frontend with Vite that calls the API
  • Solve CORS issues or use Nginx as a reverse proxy
  • Build React with a multi-stage build and serve it with Nginx in production

Section 9: Workshop: Laravel on Docker

  • The service layout: a Laravel app (PHP-FPM), Nginx and MySQL
  • A Dockerfile for Laravel 13 with Composer
  • Run Artisan and migrations, and test a CRUD API
  • Separate settings for development and production

Section 10: Lab: Publishing Images to Docker Hub

  • Docker registries and Docker Hub basics
  • Tag and push images to Docker Hub, then pull them on another machine
  • Build images for several architectures (amd64 and arm64) with Buildx
  • Build and push automatically from GitHub with GitHub Actions
  • Basic image vulnerability checks, and next steps towards Kubernetes

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

How do Docker containers differ from virtual machines?

A virtual machine emulates a whole computer, including its own operating system, so it uses a lot of memory and disk space and boots slowly. Containers share the host operating system's kernel and isolate only the app and the libraries it needs, so they are small, start in seconds and many can run on one machine. On Windows and macOS, Docker Desktop runs a small Linux VM in the background, such as WSL 2 on Windows, so it can run Linux containers.

How do you build your own Docker image with a Dockerfile?

Create a file named Dockerfile in the project folder, or let docker init generate a starting point. Use FROM to choose a base image such as node or php, WORKDIR to set the working folder, COPY to add the files you need, RUN to install packages, EXPOSE for the app's port and CMD for the start command. Add a .dockerignore file to skip unnecessary files, and use a multi-stage build to keep the final image small. Then run docker build -t myapp . and test it with docker run.

What is Docker Compose, and when should you use it?

Docker Compose uses a single YAML file, now usually named compose.yaml, to describe every service an app needs, such as a web server, the app and a database, with their ports, volumes, networks and environment variables. Running docker compose up -d starts them all together. It suits multi-container systems on development machines and small servers, and during development docker compose watch can sync code into containers automatically.

Who is the Basic Docker course for, and what should I know beforehand?

It suits developers who want their development and production environments to match, system administrators and DevOps teams starting with containers, and anyone who wants a foundation before learning Kubernetes. No Docker experience is needed. You only need basic computer skills, confident use of Windows or macOS, some comfort typing commands in a terminal and the ability to search for information online.

What will I be able to do after the Basic Docker course?

You will be able to create and manage images and containers, including running, stopping, viewing logs and mapping ports, write multi-stage Dockerfiles, manage networks and volumes, use Docker Compose to run multi-container systems such as a LAMP stack, WordPress, Node.js with MongoDB and React, and Laravel, push images to Docker Hub and set up GitHub Actions to build them automatically. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

What software does the Basic Docker course use?

The course uses Docker Desktop on Windows (through WSL 2) or macOS, with Visual Studio Code and extensions for Docker. The first part covers recommended specifications and installation on each system. The final part uses Docker Hub and GitHub to publish images, so you should sign up for free accounts on both. Docker Desktop is free for personal use, education and small businesses, while larger organisations need a paid plan under Docker's terms.