Course: Docker for the Absolute Beginner - Hands On - DevOps
Lesson
Topic: Introduction & Docker Fundamentals
Welcome to the "Introduction" chapter of our course, which sets the stage for everything that follows. This chapter explains the purpose and the learning goals so you know what to expect as you begin. Our primary aim is to provide a comprehensive understanding of the subject matter and the practical skills required to apply it. The material is designed to be accessible whether you are a beginner or already familiar with parts of the topic. The course is organized into modules that build on one another for a logical progression of ideas. Each module mixes theory, practical examples, and hands-on activities to reinforce learning. Interactive elements such as quizzes, discussion prompts, and labs are integrated to encourage active engagement. Participation in those elements helps deepen understanding and develop critical thinking. We also emphasize community: discuss ideas, share insights, and learn from peers. A rich set of resources — readings, videos, and links — is provided to support further study. You are encouraged to use the resources strategically and to document your learning as you go. By setting clear expectations and outlining the structure, this chapter aims to create a supportive learning environment. Prepare to dive into the content with curiosity and persistence as we begin this educational journey together.
Learning Outcomes
- Understand the course purpose, structure, and expectations.
- Describe core Docker concepts: images, containers, volumes, networks.
- Run basic Docker commands and build a simple image.
- Engage with interactive labs and community channels for support.
- Locate and use course resources to extend learning.
Conceptual Explanation
This lesson introduces the course roadmap and explains why Docker matters for consistent application deployment. Docker packages applications into images and runs them as isolated containers that share the host kernel. Images are layered, versioned artifacts built from Dockerfiles and distributed via registries (e.g., Docker Hub or private registries). Containers are runtime instances of images; volumes and bind mounts handle persistent data; networks enable inter-container communication. The course pairs conceptual clarity with hands-on labs: installation, docker run, building images, docker-compose, and basic orchestration.
Bilingual (EN → বাংলা)
| English | বাংলা |
|---|---|
| Course purpose and structure | কোর্সের উদ্দেশ্য ও কাঠামো |
| Docker image | ডকার ইমেজ — চালানোর জন্য প্রয়োজনীয় কোড ও লাইব্রেরির রিড-অনলি টেমপ্লেট |
| Container | কন্টেইনার — ইমেজ থেকে চালিত রানটাইম ভিন্ন পরিবেশ |
| Volume (persistent storage) | ভলিউম — স্থায়ী ডাটা সংরক্ষণ |
| Run a container | কন্টেইনার চালানো (docker run) |
Important Notes
- Always test commands in a safe lab environment before using them in production.
- Use versioned image tags (avoid relying solely on :latest) to ensure reproducible builds.
- Prefer Docker volumes for persistence; bind mounts are useful for development but less portable.
- Keep sensitive data out of Dockerfiles — use environment variables or secret management.
- Engage in community channels to accelerate troubleshooting and learning.
Exercises
True / False
- Containers include a full guest operating system.
Answer
False — Containers share the host kernel; they do not carry a full guest OS like virtual machines do. - Docker images are built from Dockerfiles.
Answer
True — Dockerfiles contain instructions to assemble images. - Volumes are deleted automatically when the container stops.
Answer
False — Volumes persist beyond container lifecycle unless explicitly removed.
Fill in the Blanks
- To list running containers you use:
docker ____.Answer
ps — Command:
docker ps - To build an image from a Dockerfile:
docker ____ -t myimage ..Answer
build — Command:
docker build -t myimage . - To run a container in detached mode: use the flag
-__.Answer
d — Use
-dto run detached (background).
Multiple Choice (MCQ)
| Question | Options | Answer |
|---|---|---|
| What command pulls an image from Docker Hub? | A) docker push B) docker pull C) docker fetch D) docker get |
AnswerB) docker pull |
| Which instruction sets the base image in a Dockerfile? | A) RUN B) COPY C) FROM D) CMD |
AnswerC) FROM |
Matching
Match the left column (Docker term) with the right column (definition).
| Term | Definition |
|---|---|
| A. Dockerfile | 1. Persistent storage managed by Docker |
| B. Volume | 2. Script of build instructions for an image |
| C. Registry | 3. Central place to store and pull images |
Answer
A → 2 (Dockerfile is the build script), B → 1 (Volume is persistent storage), C → 3 (Registry stores images).
Descriptive
- Explain the difference between a Docker image and a Docker container.
Answer
A Docker image is an immutable, layered read-only template that contains application code, libraries, and metadata. A container is a running instance created from an image; the container adds a writable layer on top of the image and executes processes.
- Outline the steps to build, tag, and run a custom Python app in Docker.
Answer
- Write app code and a Dockerfile (FROM python:3.x, COPY, RUN pip install, CMD).
- Build:
docker build -t my-python-app:1.0 . - Verify:
docker images - Run:
docker run -p 8080:80 my-python-app:1.0
Creative
Design a short lab plan (4 steps) to demonstrate portability: run the same container on your laptop and in a cloud VM.
Answer
- Build and tag a reproducible image locally:
docker build -t demo/app:1.0 .. - Push to a registry (Docker Hub or private):
docker push youruser/demo/app:1.0. - On the laptop: run the image and record output/ports:
docker run -p 8080:80 youruser/demo/app:1.0. - In a cloud VM with Docker installed: pull the image and run the same command; verify identical behavior and output.
Activities, Vocabulary, Homework, Practice Task
Activities
- Complete the "Hello World" lab: install Docker and run
docker run hello-world. - Build a minimal image from a Dockerfile and run it.
Answer
Follow lab steps; if errors occur, check daemon status (docker --version and docker ps), consult logs, and ask in the community channel.
Vocabulary
- Image
- Container
- Registry
- Volume
- Dockerfile
Answer
See the bilingual table and conceptual explanation above for concise definitions.
Homework
Write a one-page summary describing why Docker helps solve "it works on my machine" problems, include one concrete example from your environment.
Answer
Expected: explanation of dependency bundling in images, reproducible environment across hosts, example showing a dependency mismatch resolved by containerizing the app.
Practice Task
Use the provided Dockerfile example (Python app) to build and run the app; then change an environment variable at runtime and observe behavior.
Answer
- Build:
docker build -t my-python-app . - Run with env var:
docker run -e NAME=Alice -p 4000:80 my-python-app - Observe response showing the NAME value; document output.
Resources & Community
| Type | Examples / Actions |
|---|---|
| Official docs | Docker Docs (docker.com), Docker Hub |
| Interactive labs | Course lab environment, cloud-based sandboxes |
| Community | Course channel (introduce yourself), Stack Overflow, GitHub repos |
| Further reading | Books on containerization, blog posts on best practices |
Answer
Use these resources to extend learning; post questions in community channels and share lab logs for quicker help.