image de mise en avant pour l'article mémo Docker

Migration d’un serveur monolithique sur une architecture Docker

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:

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:

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!!!

Partagez l'article:
FacebookTwitterEmailLinkedIn

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.