Conteneurisation avec Docker
Apprenez à conteneuriser vos applications Scala avec Docker afin d’obtenir des environnements cohérents et de simplifier leur déploiement.
Conteneurisation avec Docker est une leçon Scala for Backend Engineering & Functional Programming gratuite sur CoddyKit. Ceci est la leçon 2 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Scala for Backend Engineering & Functional Programming, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Scala for Backend Engineering & Functional Programming comprend 3 leçons au total.
Pourquoi conteneuriser les applications Scala ?
Lors du déploiement d’applications Scala, garantir un environnement cohérent entre le développement, les tests et la production peut être difficile. C’est là qu’intervient la conteneurisation !
Un conteneur regroupe votre application et toutes ses dépendances (comme la machine virtuelle Java, les bibliothèques et la configuration) dans une unité isolée. L’application s’exécute ainsi de la même manière partout.
Docker : images et conteneurs
Docker est la plateforme de conteneurisation la plus populaire. Elle repose sur deux concepts fondamentaux :
- Image Docker : paquet léger, autonome et exécutable qui contient tout ce qui est nécessaire pour exécuter un logiciel, notamment le code, un environnement d’exécution, les outils système, les bibliothèques système et les paramètres. Considérez-la comme un modèle.
- Conteneur Docker : instance exécutable d’une image Docker. Lorsque vous exécutez une image, elle devient un conteneur. Les conteneurs sont isolés les uns des autres et du système hôte.
Votre premier lancement Docker
Essayons d’exécuter un conteneur Docker très simple. Cette commande télécharge l’image hello-world (si elle n’est pas déjà présente) et l’exécute en tant que conteneur.
Vous verrez un message confirmant que Docker fonctionne correctement !
docker run hello-world
Notre application Scala simple
Avant de la mettre en conteneur, créons une application Scala minimale. Ce programme se contentera d’afficher un message dans la console.
Nous allons bientôt intégrer cette application dans une image Docker !
object Main extends App {
val message = "Hello from CoddyKit's Docker container!"
println(message)
}Plan : le fichier Docker
Un fichier Docker est un fichier texte qui contient toutes les commandes qu’un utilisateur peut appeler depuis la ligne de commande pour assembler une image. C’est comme une recette pour construire votre image Docker.
Les instructions principales sont notamment les suivantes :
FROM: définit l’image de base.WORKDIR: définit le répertoire de travail.COPY: copie des fichiers dans l’image.RUN: exécute des commandes pendant la construction de l’image.CMD: indique la commande à exécuter au démarrage du conteneur.
Fichier Docker : étape de construction pour Scala
Pour Scala, nous utilisons souvent une construction en plusieurs étapes. La première étape construit notre application. Nous utilisons une image OpenJDK contenant un JDK complet pour compiler notre code Scala.
# Stage 1: Build the Scala application
FROM adoptopenjdk/openjdk11:latest as builder
WORKDIR /app
COPY Main.scala .
RUN scalac Main.scala
RUN jar -cvf app.jar Main.classFichier Docker : étape d’exécution pour Scala
La deuxième étape crée une image beaucoup plus petite, qui contient uniquement le JRE (environnement d’exécution Java) et notre application Scala compilée (le fichier JAR). Cela permet de réduire au minimum la taille de l’image finale.
# Stage 2: Create a minimal runtime image
FROM adoptopenjdk/openjdk11:jre-hotspot
WORKDIR /app
COPY --from=builder /app/app.jar .
CMD ["java", "-jar", "app.jar"]Fichier Docker Scala complet
Voici le fichier Docker complet, construit en plusieurs étapes, pour notre application Scala. Ce fichier doit être nommé Dockerfile et placé dans le même répertoire que votre Main.scala.
# Stage 1: Build the Scala application
FROM adoptopenjdk/openjdk11:latest as builder
WORKDIR /app
COPY Main.scala .
RUN scalac Main.scala
RUN jar -cvf app.jar Main.class
# Stage 2: Create a minimal runtime image
FROM adoptopenjdk/openjdk11:jre-hotspot
WORKDIR /app
COPY --from=builder /app/app.jar .
CMD ["java", "-jar", "app.jar"]Construction de l’image Docker
Maintenant que nous avons notre Dockerfile et notre Main.scala, construisons l’image Docker. L’option -t attribue un nom à notre image (par exemple scala-hello) et . indique que le répertoire actuel constitue le contexte de construction.
docker build -t scala-hello .
Exécution de votre application Scala conteneurisée
Une fois l’image construite, vous pouvez exécuter votre application Scala dans un conteneur Docker à l’aide de la commande docker run. Cette commande exécutera l’instruction CMD définie dans votre fichier Docker.
docker run scala-hello
Le message "Hello from CoddyKit's Docker container!" devrait s’afficher dans votre console !
Vérifiez vos connaissances
Testez votre compréhension des fichiers Docker.
Récapitulatif : mise en conteneur de Scala
Vous avez appris avec succès les bases de la mise en conteneur d’une application Scala avec Docker !
- Les images Docker sont des modèles, tandis que les conteneurs sont des instances exécutables.
- Un fichier Docker est une recette pour construire votre image.
- Les constructions en plusieurs étapes permettent de créer des images compactes et efficaces pour les applications Scala.
- Des commandes telles que
docker buildetdocker rungèrent vos images et vos conteneurs.
Ces connaissances sont essentielles pour déployer des microservices Scala de manière cohérente et fiable.
Questions Fréquemment Posées
La leçon « Conteneurisation avec Docker » est-elle gratuite ?
Oui — le texte complet de « Conteneurisation avec Docker » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Scala for Backend Engineering & Functional Programming, passe à CoddyKit PRO. Le cours Scala for Backend Engineering & Functional Programming comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « Conteneurisation avec Docker » ?
Apprenez à conteneuriser vos applications Scala avec Docker afin d’obtenir des environnements cohérents et de simplifier leur déploiement. Tu pratiques Scala for Backend Engineering & Functional Programming avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Scala for Backend Engineering & Functional Programming ?
Aucune expérience préalable n'est requise. Scala for Backend Engineering & Functional Programming sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 3.
Combien de temps prend la leçon « Conteneurisation avec Docker » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Scala for Backend Engineering & Functional Programming ?
Oui. Chaque leçon Scala for Backend Engineering & Functional Programming inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Conception de microservices Scala
- Conteneurisation avec Docker
- Stratégies de déploiement dans le cloud