Skip to content

9x14S/42-Cursus-Inception

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project has been created as part of the 42 curriculum by srahhali

Description

This project is an exercise on DevOps and System Administration.

It aims to set up a network of Docker containers, each containing a single service and to connect between all of them to provide a working service.

Instructions

For users: USER_DOC.md

For devs: DEV_DOC.md

Resources

Docker Engine Docs Docker Compose Docs MariaDB Quick Install WordPress Configuration NGINX Docs

AI has been used in this project to resolve doubts about the services' configurations. Google Gemini has been used.

Project Description

Docker is a containerization platform with tools for creating services separate from the rest of system. It achieves this by creating "Images", which are pre-configured system setups, and then creating "Containers" out of them, which are instantiated Images with data separate from any other containers made from the same image. A similarity between Images/Containers and Classes/Objects can be seen here.

The difference betwen Virtual Machines and Docker containers, is that Virtual Machines emulate an entire system, including the CPU and peripherals, but a Docker container runs as part of the system, using namespaces to achieve isolation from the host system and other containers.

Environment variables have been chosen over Docker Compose Secrets due to most of the logic requiring the secrets being in the setup and configuration. The difference between them is the way they're presented to the running container, which for environment variables, are passed as-is to the process, but Docker secrets mount the secrets file into the container.

Docker Network: Since this project's subject asks for a private network (no access from outside the network other that to interact with nginx), I've used Docker networks. The difference between them is just the scope, where for the host network it allows access for the whole network and its hosts, and for the Docker Network it is a smaller, scaled-down private network that can be configured for each of the containers.

Docker Volumes: A Docker volume is just a directory configured for the Docker container to store its data. It is better than regular bind mounts in that it is managed by the Docker Daemon instead of the Kernel directly, taking into account some of the quirks of containers.

About

Docker containerization and setup project for 42

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors