# kunnusherry/docker architecture

> Architecture diagram of the GitHub repository kunnusherry/docker, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kunnusherry/docker
- Repository: https://github.com/kunnusherry/docker

## Overview

This repository is a Docker learning curriculum with hands-on demos, not a single application. The learner reads the five module guides and command reference, then runs sample projects to explore interactive containers, persistence, outbound networking, and multi-container database orchestration. The sampled Python sources support the workflows shown for the CLI, storage, API, and MySQL demos. The README documents a React project, but its files are absent from the supplied tree, so it is represented only as an unsampled capability. Compose wiring is included as documented, not inferred from sampled source.

Main entry points: [`05-multi-container-mysql-app/sql_demo.py`](https://github.com/kunnusherry/docker/blob/main/05-multi-container-mysql-app/sql_demo.py) (MySQL CLI Manager), [`05-multi-container-mysql-app/docker-compose.yaml`](https://github.com/kunnusherry/docker/blob/main/05-multi-container-mysql-app/docker-compose.yaml) (Compose Setup), [`03-volumes-and-storage-app/myapp.py`](https://github.com/kunnusherry/docker/blob/main/03-volumes-and-storage-app/myapp.py) (Persistence Demo), [`04-external-api-client/api_demo.py`](https://github.com/kunnusherry/docker/blob/main/04-external-api-client/api_demo.py) (External API Demo)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_curriculum["Learning Guides"]
  node_fundamentals["Fundamentals"]
  node_images_containers["Images &amp; Containers"]
  node_registries["Registries"]
  node_storage_guide["Storage Guide"]
  node_network_guide["Networking Guide"]
  node_command_reference["CLI Reference"]
end

subgraph group_demos["Hands-on Demos"]
  node_calculator["Interactive Calculator<br/>[myapp.py]"]
  node_react_demo["React Web Demo"]
  node_storage_demo["Persistence Demo<br/>[myapp.py]"]
  node_storage_file["User Info File"]
  node_api_demo["External API Demo<br/>[api_demo.py]"]
end

subgraph group_orchestration["Container Orchestration"]
  node_compose_config["Compose Setup"]
  node_mysql_demo["MySQL CLI Manager<br/>[sql_demo.py]"]
  node_mysql_db[("MySQL Database")]
  node_local_log["Username Log"]
end

node_learner(("Learner"))
node_public_api{{"Cat Facts API"}}

node_learner -->|"reads"| node_fundamentals
node_learner -->|"reads"| node_images_containers
node_learner -->|"reads"| node_registries
node_learner -->|"reads"| node_storage_guide
node_learner -->|"reads"| node_network_guide
node_learner -->|"consults"| node_command_reference
node_learner -->|"runs"| node_calculator
node_learner -->|"runs"| node_react_demo
node_learner -->|"runs"| node_storage_demo
node_learner -->|"runs"| node_api_demo
node_learner -->|"runs"| node_mysql_demo
node_storage_demo -->|"reads/writes"| node_storage_file
node_api_demo -->|"HTTP GET"| node_public_api
node_compose_config -->|"orchestrates"| node_mysql_demo
node_compose_config -->|"orchestrates"| node_mysql_db
node_mysql_demo -->|"reads/writes"| node_mysql_db
node_mysql_demo -->|"writes"| node_local_log

click node_fundamentals "https://github.com/kunnusherry/docker/blob/main/01_Docker_Fundamentals_and_Architecture.md"
click node_images_containers "https://github.com/kunnusherry/docker/blob/main/02_Dockerfiles_Images_and_Containers.md"
click node_registries "https://github.com/kunnusherry/docker/blob/main/03_Docker_Registries_and_DockerHub.md"
click node_storage_guide "https://github.com/kunnusherry/docker/blob/main/04_Data_Persistence_Volumes_and_BindMounts.md"
click node_network_guide "https://github.com/kunnusherry/docker/blob/main/05_Networking_and_Multi_Container_Orchestration.md"
click node_command_reference "https://github.com/kunnusherry/docker/blob/main/DOCKER_COMMANDS_CHEAT_SHEET.md"
click node_calculator "https://github.com/kunnusherry/docker/blob/main/01-interactive-cli-app/myapp.py"
click node_storage_demo "https://github.com/kunnusherry/docker/blob/main/03-volumes-and-storage-app/myapp.py"
click node_api_demo "https://github.com/kunnusherry/docker/blob/main/04-external-api-client/api_demo.py"
click node_compose_config "https://github.com/kunnusherry/docker/blob/main/05-multi-container-mysql-app/docker-compose.yaml"
click node_mysql_demo "https://github.com/kunnusherry/docker/blob/main/05-multi-container-mysql-app/sql_demo.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_fundamentals,node_images_containers,node_registries,node_storage_guide,node_network_guide,node_command_reference toneBlue
class node_calculator,node_react_demo,node_storage_demo,node_storage_file,node_api_demo toneAmber
class node_compose_config,node_mysql_demo,node_mysql_db,node_local_log,node_public_api toneMint
class node_learner toneIndigo
```

## Components

### Learning Guides

- [Fundamentals](https://github.com/kunnusherry/docker/blob/main/01_Docker_Fundamentals_and_Architecture.md): `01_Docker_Fundamentals_and_Architecture.md`
- [Images & Containers](https://github.com/kunnusherry/docker/blob/main/02_Dockerfiles_Images_and_Containers.md): `02_Dockerfiles_Images_and_Containers.md`
- [Registries](https://github.com/kunnusherry/docker/blob/main/03_Docker_Registries_and_DockerHub.md): `03_Docker_Registries_and_DockerHub.md`
- [Storage Guide](https://github.com/kunnusherry/docker/blob/main/04_Data_Persistence_Volumes_and_BindMounts.md): `04_Data_Persistence_Volumes_and_BindMounts.md`
- [Networking Guide](https://github.com/kunnusherry/docker/blob/main/05_Networking_and_Multi_Container_Orchestration.md): `05_Networking_and_Multi_Container_Orchestration.md`
- [CLI Reference](https://github.com/kunnusherry/docker/blob/main/DOCKER_COMMANDS_CHEAT_SHEET.md): `DOCKER_COMMANDS_CHEAT_SHEET.md`

### Hands-on Demos

- [Interactive Calculator](https://github.com/kunnusherry/docker/blob/main/01-interactive-cli-app/myapp.py): `01-interactive-cli-app/myapp.py`
- **React Web Demo**
- [Persistence Demo](https://github.com/kunnusherry/docker/blob/main/03-volumes-and-storage-app/myapp.py): `03-volumes-and-storage-app/myapp.py`
- **User Info File**
- [External API Demo](https://github.com/kunnusherry/docker/blob/main/04-external-api-client/api_demo.py): `04-external-api-client/api_demo.py`

### Container Orchestration

- [Compose Setup](https://github.com/kunnusherry/docker/blob/main/05-multi-container-mysql-app/docker-compose.yaml): `05-multi-container-mysql-app/docker-compose.yaml`
- [MySQL CLI Manager](https://github.com/kunnusherry/docker/blob/main/05-multi-container-mysql-app/sql_demo.py): `05-multi-container-mysql-app/sql_demo.py`
- **MySQL Database**
- **Username Log**

### Other components

- **Learner**
- **Cat Facts API**

## Connections

- Learner → Fundamentals: reads
- Learner → Images & Containers: reads
- Learner → Registries: reads
- Learner → Storage Guide: reads
- Learner → Networking Guide: reads
- Learner → CLI Reference: consults
- Learner → Interactive Calculator: runs
- Learner → React Web Demo: runs
- Learner → Persistence Demo: runs
- Learner → External API Demo: runs
- Learner → MySQL CLI Manager: runs
- Persistence Demo → User Info File: reads/writes
- External API Demo → Cat Facts API: HTTP GET
- Compose Setup → MySQL CLI Manager: orchestrates
- Compose Setup → MySQL Database: orchestrates
- MySQL CLI Manager → MySQL Database: reads/writes
- MySQL CLI Manager → Username Log: writes
