This project has been created as part of the 42 curriculum by mteichma.
Inception is a system administration project using Docker. The goal is to set up a small infrastructure with NGINX, WordPress, and MariaDB, each running in separate Docker containers.
- Add the domain to your
/etc/hosts:
127.0.0.1 mteichma.42.fr
-
Run
makeat the root to build and start all services. -
Access WordPress at
https://mteichma.42.fr
Other commands:
make down- stop servicesmake clean- stop and remove imagesmake fclean- full cleanup including data
- Docker Documentation
- Docker Compose Documentation
- NGINX Documentation
- MariaDB Documentation
- WordPress Documentation
This project uses Docker to create an infrastructure with three services: NGINX (reverse proxy with TLS), WordPress (with php-fpm), and MariaDB (database). All services run in separate containers built from custom Dockerfiles.
Virtual Machines include a full OS and hypervisor, making them heavier. Docker containers share the host OS kernel, making them lighter and faster to start.
Environment variables are visible in container inspection and logs. Docker secrets are stored encrypted and mounted as files in containers, providing better security for sensitive data like passwords.
Docker network creates an isolated network for containers to communicate. Host network makes containers use the host's network directly, removing isolation but improving performance.
Docker volumes are managed by Docker and stored in Docker's directory. Bind mounts link directly to host filesystem paths. Volumes are more portable, bind mounts give direct file access.