Docker Compose is a tool that lets you define and run multi-container Docker applications using a single configuration file. Instead of starting each container manually via the Docker CLI, you can describe all your services (like a web app, database, cache, etc.) in a docker-compose.yml
file and run everything with a single command.
Docker Compose = Project config + Multiple containers + One command to run it all
docker-compose.yml
version: '3.9'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"
This file:
Builds and runs a local web app container
Starts a Redis container from the official image
Automatically networks the two containers
docker-compose up # Start all services in the foreground
docker-compose up -d # Start in detached (background) mode
docker-compose down # Stop and remove containers, networks, etc.
✅ Easy setup for multi-service applications
✅ Version-controlled config (great for Git)
✅ Reproducible development environments
✅ Simple startup/shutdown of entire stacks
Local development with multiple services (e.g., web app + DB)
Integration testing with full stack
Simple deployment workflows (e.g., via CI/CD)
A cron job is a scheduled, recurring background task on Unix- or Linux-based systems. It is managed by the cron daemon, which regularly checks whether a job is due to run according to a predefined schedule.
Automation: Automates tasks like backups, updates, email dispatch, or script execution.
Time control: You define exactly when and how often the job should run (e.g., daily at 3:00 AM or every Monday).
Configuration: Jobs are scheduled using crontabs (cron tables).
0 3 * * * /usr/bin/php /var/www/mein-skript.php
Explanation:
0 3 * * *
→ Runs every day at 3:00 AM
/usr/bin/php /var/www/my-script.php
→ The command to execute
* * * * * (Minute Stunde Tag Monat Wochentag)
Saves time through automation
Reduces human error
Ideal for repetitive tasks
Bash (Bourne Again Shell) is a widely used Unix shell and command-line interpreter. It was developed as free software by the Free Software Foundation and is the default shell on most Linux systems as well as macOS. Bash is a successor to the original Bourne Shell (sh), which was developed by Stephen Bourne in the 1970s.
cd
, ls
, pwd
).cp
, mv
, rm
, mkdir
).ps
, kill
, top
).find
, grep
).sed
, awk
).ping
, ifconfig
, ssh
).#!/bin/bash
# Simple loop that prints Hello World 5 times
for i in {1..5}
do
echo "Hello World $i"
done
In summary, Bash is a powerful and flexible shell that can be used for both interactive tasks and complex automation scripts.
A CLI (Command-Line Interface) is a type of user interface that allows users to interact with a computer or software application by typing text commands into a console or terminal. Unlike a GUI, which relies on visual elements like buttons and icons, a CLI requires users to input specific commands in text form to perform various tasks.
Text-Based Interaction:
Precision and Control:
Scripting and Automation:
Minimal Resource Usage:
A CLI is a powerful tool that provides users with direct control over a system or application through text commands. It is widely used by system administrators, developers, and power users who require precision, efficiency, and the ability to automate tasks. While it has a steeper learning curve compared to a GUI, its flexibility and power make it an essential interface in many technical environments.