This project has been created as part of the 42 curriculum by mausperg.
The inception project is about system administration using Docker.
The goal is to build multiple Docker images and use them with Docker Compose.
- Redis cache for WordPress
- FTP server container pointing to the WordPress volume
- Simple static website
- Adminer
- Service of my choice (Node-RED)
Virtual Machines vs Docker: A Docker container is much lighter than a VM because it does not bring its own kernel. Instead, it uses the host's kernel.
Secrets vs Environment Variables: A Secret is used to store sensitive information like passwords. To do this, a secret is mounted as a file in the Docker container and is not a global variable like an ENV variable. This has the benefit of allowing you to set access rights to the file.
Docker Network vs Host Network: Docker allows you to create multiple separate networks, so you can isolate containers from each other. Another option is to use the Host network. If you do so, the container will be in the same "public" network as the host it is running on.
Docker Volumes vs Bind Mounts: A Docker volume is managed by the Docker daemon, while a Docker bind mount can be any folder on the host system that is mounted into the container.
Build the images:
make build
Run the container:
make run
Check the status of the container, images, and volumes:
make status
Clean (delete) the container and image:
make clean
Clean (delete) the container, image, and volumes:
make fclean
Show running containers:
docker ps
Attach to the console of a running container:
docker exec -it [CONTAINER NAME] sh
Bring Docker Compose up:
docker compose up
Bring Docker Compose down:
docker compose down
- https://docs.docker.com/
- https://nginx.org/en/docs/index.html
- https://mariadb.com/docs/server/clients-and-utilities/deployment-tools/mariadb-install-db
- https://www.php.net/manual/de/install.fpm.php
- https://developer.wordpress.org/cli/commands/core/
- https://wiki.alpinelinux.org/wiki/FTP
- https://nodered.org/docs/
- AI was used for debugging, and it was also used to correct the grammar and spelling of the text.
