Temps de lecture estimé: 1 minute
Comme je le disais dans mes articles précédents, je migre tout mon serveur live monolithe sur un serveur Ubuntu qui fera tourner mes services avec des conteneurs Docker. Je me suis fait un petit mémo avec les bases sommaires de Docker.
Je fais ici un récap des étapes par lesquelles je suis passé. J’ai d’abord tout fait en local sur Windows et une fois que c’était convenable, j’ai passé tout mon travail sur un nouveau serveur virtualisé.
Au niveau de ce nouveau serveur, j’ai préparé une nouvelle machine virtuelle sur mon hyperviseur ESXI. j’ai installé la dernière version LTS d’Ubuntu server, la 22.04 Jammy Jellyfish
j’ai ensuite fait les préparations de base:
- installation et sécurisation de ssh
- installation de fail2ban
- installation de Docker
- Letsencrypt pour avoir les certificats à disposition sur le serveur
Pour des raisons de sécurité, mes certificats letsencrypt ne doivent en aucun cas être inclus directement dans le build de l’image Docker (ni inclus dans un commit et poussé sur le dépôt git d’un projet). Ils vont être inclus en spécifiant un volume au lancement de l’image. J’ai vu qu’il était possible de les inclure sous sous forme de secrets Docker, un peu de la même manière que les secrets sous Kubernetes. Mais ça je verrai dans un second temps.
pour profiter des fonctionnalités DNS de Docker entre les containers, je vais créer un réseau Docker dédié à mon infra. ça me permettra dans mes différents paramètres d’utiliser le nom du container au lieu de son IP (potentiellement variable à chaque démarrage)
docker network create infra
pour me mettre en situation de production, j’ai modifié mon fichier host Windows (Notepad++ en mode administrateurs) pour que mes domaines pointes sur l’IP local de mon nouveau serveur
127.0.0.1 localhost
::1 localhost
192.168.12.20 anthony-jacob.com
192.168.12.20 www.anthony-jacob.com
192.168.12.20 cv.anthony-jacob.com
192.168.12.20 mysql.anthony-jacob.com
192.168.12.20 gitlab.anthony-jacob.com
192.168.12.20 blog.anthony-jacob.com
# Added by Docker Desktop
192.168.12.16 host.docker.internal
192.168.12.16 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
ensuite je me suis occupé de Dockeriser chaque service/application que j’avais sur mon serveur de prod. Ce que je détaille avec les articles dédiés ci-dessous, donc au final:
- Dockeriser un reverse proxy Apache
- Dockeriser une interface d’administration pour Docker, Portainer
- Dockeriser un serveur MySql
- Dockeriser un site vitrine / CV
- Dockeriser un blog wordpress
- Dockeriser un serveur Gitlab
tout n’a pas été fait dans les règles de l’art et je me pencherai plus tard sur les secrets Docker et comment rendre mes images et mes déploiements un peu plus propres
Mais voilà, mon serveur de prod fait maintenant tourner mes applications et services, comme ce blog, dans des containers Docker..
en attendant je te dis à bientôt dans de nouvelles aventures!!!