⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Déploiement et orchestration

La conteneurisation offre la possibilité de déplacer et de mettre à l'échelle des applications vers des clouds et des centres de données. Les conteneurs garantissent efficacement que ces applications s'exécutent de la même manière partout, vous permettant de profiter rapidement et facilement de tous ces environnements. De plus, à mesure que vous augmentez la taille de vos applications, vous avez besoin d'outils pour aider à automatiser la maintenance de ces applications, permettre le remplacement automatique des conteneurs défaillants et gérer le déploiement des mises à jour et des reconfigurations de ces conteneurs au cours de leur cycle de vie.

Les outils de gestion, de mise à l'échelle et de maintenance des applications conteneurisées sont appelés orchestrateurs. Deux des outils d'orchestration les plus populaires sont Kubernetes et Docker Swarm. Docker Desktop fournit des environnements de développement pour ces deux orchestrateurs.

Les modules avancés vous apprennent à :

  1. Configurer et utiliser un environnement Kubernetes sur votre machine de développement
  2. Configurer et utiliser un environnement Swarm sur votre machine de développement

Activer Kubernetes

Docker Desktop configure Kubernetes pour vous rapidement et facilement. Suivez les instructions de configuration et de validation appropriées à votre système d'exploitation :

Mac

  1. Depuis le tableau de bord Docker, accédez à Paramètres, puis sélectionnez l'onglet Kubernetes.

  2. Cochez la case Activer Kubernetes, puis sélectionnez Appliquer et redémarrer. Docker Desktop configure automatiquement Kubernetes pour vous. Vous saurez que Kubernetes a été activé avec succès lorsque vous verrez un voyant vert à côté de 'Kubernetes en cours d'exécution' dans les Paramètres.

  3. Pour confirmer que Kubernetes est opérationnel, créez un fichier texte appelé pod.yaml avec le contenu suivant :

    apiVersion: v1
    kind: Pod
    metadata:
      name: demo
    spec:
      containers:
        - name: testpod
          image: alpine:latest
          command: ["ping", "8.8.8.8"]

    Ceci décrit un pod avec un seul conteneur, isolant un simple ping vers 8.8.8.8.

  4. Dans un terminal, naviguez jusqu'à l'endroit où vous avez créé pod.yaml et créez votre pod :

    $ kubectl apply -f pod.yaml
    
  5. Vérifiez que votre pod est opérationnel :

    $ kubectl get pods
    

    Vous devriez voir quelque chose comme :

    NAME      READY     STATUS    RESTARTS   AGE
    demo      1/1       Running   0          4s
  6. Vérifiez que vous obtenez les journaux attendus pour un processus de ping :

    $ kubectl logs demo
    

    Vous devriez voir la sortie d'un processus de ping sain :

    PING 8.8.8.8 (8.8.8.8): 56 data bytes
    64 bytes from 8.8.8.8: seq=0 ttl=37 time=21.393 ms
    64 bytes from 8.8.8.8: seq=1 ttl=37 time=15.320 ms
    64 bytes from 8.8.8.8: seq=2 ttl=37 time=11.111 ms
    ...
  7. Enfin, supprimez votre pod de test :

    $ kubectl delete -f pod.yaml
    

Windows

  1. Depuis le tableau de bord Docker, accédez à Paramètres, puis sélectionnez l'onglet Kubernetes.

  2. Cochez la case Activer Kubernetes, puis sélectionnez Appliquer et redémarrer. Docker Desktop configure automatiquement Kubernetes pour vous. Vous saurez que Kubernetes a été activé avec succès lorsque vous verrez un voyant vert à côté de 'Kubernetes en cours d'exécution' dans le menu Paramètres.

  3. Pour confirmer que Kubernetes est opérationnel, créez un fichier texte appelé pod.yaml avec le contenu suivant :

    apiVersion: v1
    kind: Pod
    metadata:
      name: demo
    spec:
      containers:
        - name: testpod
          image: alpine:latest
          command: ["ping", "8.8.8.8"]

    Ceci décrit un pod avec un seul conteneur, isolant un simple ping vers 8.8.8.8.

  4. Dans PowerShell, naviguez jusqu'à l'endroit où vous avez créé pod.yaml et créez votre pod :

    $ kubectl apply -f pod.yaml
    
  5. Vérifiez que votre pod est opérationnel :

    $ kubectl get pods
    

    Vous devriez voir quelque chose comme :

    NAME      READY     STATUS    RESTARTS   AGE
    demo      1/1       Running   0          4s
  6. Vérifiez que vous obtenez les journaux attendus pour un processus de ping :

    $ kubectl logs demo
    

    Vous devriez voir la sortie d'un processus de ping sain :

    PING 8.8.8.8 (8.8.8.8): 56 data bytes
    64 bytes from 8.8.8.8: seq=0 ttl=37 time=21.393 ms
    64 bytes from 8.8.8.8: seq=1 ttl=37 time=15.320 ms
    64 bytes from 8.8.8.8: seq=2 ttl=37 time=11.111 ms
    ...
  7. Enfin, supprimez votre pod de test :

    $ kubectl delete -f pod.yaml
    

Activer Docker Swarm

Docker Desktop s'exécute principalement sur Docker Engine, qui contient tout ce dont vous avez besoin pour exécuter un Swarm. Suivez les instructions de configuration et de validation appropriées à votre système d'exploitation :

Mac

  1. Ouvrez un terminal et initialisez le mode Docker Swarm :

    $ docker swarm init
    

    Si tout se passe bien, vous devriez voir un message similaire à celui-ci :

    Swarm initialized: current node (tjjggogqpnpj2phbfbz8jd5oq) is now a manager.
    
    To add a worker to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-3e0hh0jd5t4yjg209f4g5qpowbsczfahv2dea9a1ay2l8787cf-2h4ly330d0j917ocvzw30j5x9 192.168.65.3:2377
    
    To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
  2. Exécutez un service Docker simple qui utilise un système de fichiers basé sur Alpine et isole un ping vers 8.8.8.8 :

    $ docker service create --name demo alpine:latest ping 8.8.8.8
    
  3. Vérifiez que votre service a créé un conteneur en cours d'exécution :

    $ docker service ps demo
    

    Vous devriez voir quelque chose comme :

    ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
    463j2s3y4b5o        demo.1              alpine:latest       docker-desktop      Running             Running 8 seconds ago
  4. Vérifiez que vous obtenez les journaux attendus pour un processus de ping :

    $ docker service logs demo
    

    Vous devriez voir la sortie d'un processus de ping sain :

    demo.1.463j2s3y4b5o@docker-desktop    | PING 8.8.8.8 (8.8.8.8): 56 data bytes
    demo.1.463j2s3y4b5o@docker-desktop    | 64 bytes from 8.8.8.8: seq=0 ttl=37 time=13.005 ms
    demo.1.463j2s3y4b5o@docker-desktop    | 64 bytes from 8.8.8.8: seq=1 ttl=37 time=13.847 ms
    demo.1.463j2s3y4b5o@docker-desktop    | 64 bytes from 8.8.8.8: seq=2 ttl=37 time=41.296 ms
    ...
  5. Enfin, supprimez votre service de test :

    $ docker service rm demo
    

Windows

  1. Ouvrez un PowerShell et initialisez le mode Docker Swarm :

    $ docker swarm init
    

    Si tout se passe bien, vous devriez voir un message similaire à celui-ci :

    Swarm initialized: current node (tjjggogqpnpj2phbfbz8jd5oq) is now a manager.
    
    To add a worker to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-3e0hh0jd5t4yjg209f4g5qpowbsczfahv2dea9a1ay2l8787cf-2h4ly330d0j917ocvzw30j5x9 192.168.65.3:2377
    
    To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
  2. Exécutez un service Docker simple qui utilise un système de fichiers basé sur Alpine et isole un ping vers 8.8.8.8 :

    $ docker service create --name demo alpine:latest ping 8.8.8.8
    
  3. Vérifiez que votre service a créé un conteneur en cours d'exécution :

    $ docker service ps demo
    

    Vous devriez voir quelque chose comme :

    ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
    463j2s3y4b5o        demo.1              alpine:latest       docker-desktop      Running             Running 8 seconds ago
  4. Vérifiez que vous obtenez les journaux attendus pour un processus de ping :

    $ docker service logs demo
    

    Vous devriez voir la sortie d'un processus de ping sain :

    demo.1.463j2s3y4b5o@docker-desktop    | PING 8.8.8.8 (8.8.8.8): 56 data bytes
    demo.1.463j2s3y4b5o@docker-desktop    | 64 bytes from 8.8.8.8: seq=0 ttl=37 time=13.005 ms
    demo.1.463j2s3y4b5o@docker-desktop    | 64 bytes from 8.8.8.8: seq=1 ttl=37 time=13.847 ms
    demo.1.463j2s3y4b5o@docker-desktop    | 64 bytes from 8.8.8.8: seq=2 ttl=37 time=41.296 ms
    ...
  5. Enfin, supprimez votre service de test :

    $ docker service rm demo
    

Conclusion

À ce stade, vous avez confirmé que vous pouvez exécuter des tâches de conteneurisation simples dans Kubernetes et Swarm. La prochaine étape consiste à écrire un fichier YAML qui décrit comment exécuter et gérer ces conteneurs.

Références CLI

Pour plus d'informations sur toutes les commandes CLI utilisées dans cet article, veuillez consulter :