← Learn Docker 1 · Build your first Docker web server

Level 2 · Interactive workspace

OnePilots Playground

Write a Compose model, inspect the infrastructure it creates and learn to diagnose the failures that happen after docker compose up.

Learning progress0/6

Compose workshop

Edit the model and run focused checks. Nothing is executed on your Docker host.
20 lines2 services

Compose validator

Run validation to inspect the Compose structure.

Live infrastructure

live model
BROWSERlocalhost
8080
Docker host8080
project network
SERVICEwebnginx:alpine:80
SERVICEapinode:22-alpineinternal only
STORAGEread-only mount

Security scan

Run the scan to review exposure, privileges and resilience.

Log analyzer

Paste container logs. Analysis happens locally in the browser.

No log analysis yet.

Troubleshooting drills

Learn to recognize the first useful failure signal.

Exercise 01

The API cannot reach the database

The API logs ECONNREFUSED 127.0.0.1:5432 while a db service is running.

api | connect ECONNREFUSED 127.0.0.1:5432
Exercise 02

The host port is already in use

Compose stops before the web service starts.

Bind for 0.0.0.0:8080 failed: port is already allocated
Exercise 03

The container writes to a read-only mount

nginx starts, but generated content cannot be saved.

open() /usr/share/nginx/html/index.html failed (30: Read-only file system)

Safe deployment handoff

Safe deployment handoff

The Playground teaches and checks configuration, but deliberately has no Docker socket. Validate again on the target host before starting services.

  1. 01docker compose config
  2. 02docker compose up -d
  3. 03docker compose ps
  4. 04docker compose logs --tail=100