THM : Intro to Docker

This guide walks you through the "Intro to Docker" room on TryHackMe, covering Docker basics, useful commands, and practical tasks for container management and orchestration. Whether you're new to Docker or refreshing your skills, this overview will help you gain a solid foundation in containerization.


Task 1: Introduction

No specific answers are needed for this task. If you've completed the Linux Fundamentals module on TryHackMe, you're well-prepared for this room.


Task 2: Basic Docker Syntax

  1. Pull an Image: To pull a Docker image from Docker Hub, use:

    docker pull <image_name>
  2. List All Images: To list all Docker images on your system, use:

    docker image ls
  3. Example Command: To pull a specific image:

    docker pull tryhackme

    To pull a specific tag of an image:

    docker pull tryhackme:1337

Task 3: Running Your First Container

  1. Run a Container Interactively:

    docker run -it <image_name>
  2. Run in Detached Mode:

    docker run -d <image_name>
  3. Bind a Web Server to Port 80:

    docker run -p 80:80 <image_name>
  4. List Running Containers:

    docker ps
  5. List All Containers (Including Stopped):

    docker ps -a

Task 4: Intro to Dockerfiles

  1. Specify Base Image:

    FROM <base_image>
  2. Run a Command:

    RUN <command>
  3. Build an Image from a Dockerfile:

    docker build -t <image_name> .

Task 5: Intro to Docker Compose

  1. Start Services with Docker Compose:

    docker-compose up
  2. Stop and Remove Services:

    docker-compose down
  3. Docker Compose File: The configuration file for Docker Compose is named docker-compose.yml.


Task 6: Docker Socket and IPC

  1. IPC (Interprocess Communication): Docker enables communication between processes in containers.

  2. Docker Server Comparison: The Docker Server’s functionality can be compared to an API for managing and interacting with containers.


Task 7: Practical

  1. Identify Running Container: Connect to the machine to find the container name, which is typically listed as "CloudIsland."

  2. Run a Web Server:

    docker run -d -p 80:80 webserver

    After launching the web server, visit the provided URL to retrieve the flag.

Last updated