This project aims to virtualize several Docker images and create a network of containers for a WordPress website. The following containers are created:
- A Docker container with NGINX with TLSv1.2 or TLSv1.3 only
- A Docker container with WordPress + php-fpm
- A Docker container with MariaDB
- A volume that contains the WordPress database
- A second volume that contains the WordPress website files
- A docker-network that establishes the connection between the containers
- Set up redis cache for your WordPress website in order to properly manage the cache
- Create a simple static website in the language of your choice except PHP (Yes, PHP is excluded!). For example, a showcase site or a site for presenting your resume
- Set up Adminer
- Set up a service of your choice that you think is useful. During the defense, you will have to justify your choice
This project consists in having you set up a small infrastructure composed of different
services under specific rules. The whole project has to be done in a virtual machine. You
have to use docker compose
- Docker installed on your machine
- Familiarity with basic Docker concepts and commands
- Docker
- Docker Images
- Docker Containers
- Docker Volumes
- Docker Network
- Docker Compose
- NGINX Container
- WordPress Container
- MariaDB Container
- Bonus-adminer Container
- Bonus-portainer Container
- Bonus-redis Container
- Bonus-staticsite Container
Docker is a software platform that allows you to create, deploy, and run applications inside containers. Containers are isolated environments that include all the necessary files and dependencies needed to run an application, making it easy to deploy and manage applications across different environments. Docker provides a standardized and reproducible way to package and distribute applications, making it easier for developers to create, test, and deploy their applications.
A Docker image is a pre-built environment for running a containerized application, consisting of all necessary files, libraries, and configuration settings packaged into a single file system
A Docker container is a runnable instance of a Docker image, isolated from the host system and its resources, with its own file system, network, and process space.
A Docker volume is a way to store data generated by and/or used by a Docker container, that persist even after the container is deleted. Volumes can be created and managed independently of containers, and can be used by multiple containers.
A Docker network is a virtual network that connects Docker containers, allowing them to communicate with each other and the host system, as well as to isolate network traffic between containers.
Docker Compose is a tool for defining and running multi-container Docker applications, by using a YAML file to specify the services, networks, and volumes for an application, and to configure how they are connected and interact with each other. With Docker Compose, you can define an entire application stack in a single file, and then start and stop the entire stack with a single command.