Ceci est une ancienne révision du document !


Version : 2022.01

Dernière mise-à-jour : 2022/07/18 17:56

DOF600 - Docker : Utilisation, Administration et Sécurisation

Contenu du Module

  • DOF600 - Docker : Utilisation, Administration et Sécurisation.
    • Contenu du Module
    • Prérequis
      • Matériel
      • Logiciels
      • Internet
    • Utilisation de l'Infrastructure
    • Programme de la Formation

Prérequis

Matériel

  • Un poste (MacOS, Linux, Windows™ ou Solaris™),
  • Clavier AZERTY FR ou QWERTY US,
  • 4 Go de RAM minimum,
  • Processeur 2 cœurs minimum,
  • Un casque ou des écouteurs,
  • Un micro (optionnel).

Logiciels

  • Web Chrome version 72+ ou
  • Microsoft Edge version 79+ ou
  • Firefox version 65+.

Internet

  • Un accès à Internet rapide (4G minimum) SANS passer par un proxy,
  • Accès débloqué aux ports 80 et 443 à : https://ittraining.io ainsi que ses sous-domaines.

Utilisation de l'Infrastructure

Au départ de votre formation, votre formateur vous attribue un ID allant de Trainee01 à Trainee12.

Pour avoir accès à vos machines virtuelles, vous devez d'abord vous connecter à votre gateway vers notre cloud.

Il existe trois méthodes de connexion :

1 - RDP, la méthode conseillée

Ce type de connexion implique que vous ayez accès au port 3389 sur un de nos serveurs. En cas d'échec, passez directement à la méthode 3 - Guacamole, en utilisant un Navigateur Web.

La connexion s'effectue avec Remote Desktop Connection sous Windows™ ou avec Remmina sous Linux ou avec Microsoft Remote Desktop for Mac ou Devolutions Remote Desktop Manager sous MacOS.

Les adresses IP de connexion sont les suivantes :

ID Adresse IP
Trainee01 54.37.141.112
Trainee02 51.83.167.160
Trainee03 51.83.167.176
Trainee04 51.83.167.144
Trainee05 135.125.231.240
Trainee06 51.38.110.144
Trainee07 135.125.212.64
Trainee08 145.239.1.236
Trainee09 146.59.36.176
Trainee10 146.59.37.0
Trainee11 145.239.253.177
Trainee12 51.68.204.226

Utilisez le nom d'utilisateur et le mot de passe qui vous ont été fournis par votre formateur.

2 - SSH, via le port 2222

Ce type de connexion implique que vous ayez accès au port 2222 sur un de nos serveurs. En cas d'échec, passez à la méthode 3 - Guacamole, en utilisant un Navigateur Web.

Utilisez la commande appropriée issue du tableau suivant dans un terminal sur votre poste :

ID Commande
Trainee01 ssh -l trainee compute01.ittraining.network -p 2222
Trainee02 ssh -l trainee compute02.ittraining.network -p 2222
Trainee03 ssh -l trainee compute03.ittraining.network -p 2222
Trainee04 ssh -l trainee compute04.ittraining.network -p 2222
Trainee05 ssh -l trainee compute05.ittraining.network -p 2222
Trainee06 ssh -l trainee compute06.ittraining.network -p 2222
Trainee07 ssh -l trainee compute07.ittraining.network -p 2222
Trainee08 ssh -l trainee compute08.ittraining.network -p 2222
Trainee09 ssh -l trainee compute09.ittraining.network -p 2222
Trainee10 ssh -l trainee compute10.ittraining.network -p 2222
Trainee11 ssh -l trainee compute11.ittraining.network -p 2222
Trainee12 ssh -l trainee compute12.ittraining.network -p 2222

Utilisez le mot de passe qui vous a été fourni par votre formateur.

3 - Guacamole, en utilisant un Navigateur Web

Ouvrez votre navigateur web Chrome, Edge ou Firefox et saisissez l'URL selon le tableau ci-dessous :

Utilisez le nom d'utilisateur et le mot de passe qui vous ont été fournis par votre formateur.

Cliquez ensuite sur la connexion Gateway_SSH.

Si vous ne savez pas copier / coller en utilisant Guacamole, consultez cet article (En).

Les informations à noter pour une utilisation courante sont :

Machine Nom d'hôte Adresse IP
Debian_9 debian9.i2tch.loc 10.0.2.60
Debian_91 debian91.i2tch.loc 10.0.2.61
Manager manager.i2tch.loc 10.0.2.62
Worker01 worker1.i2tch.loc 10.0.2.63
Worker02 worker2.i2tch.loc 10.0.2.64

Les noms d'utilisateurs et les mots de passe sont identiques pour chaque machine virtuelle Linux :

Utilisateur Mot de Passe
trainee trainee
root fenestros

Dernièrement connectez-vous à la machine virtuelle utilisée pour cette formation :

$ ssh -l trainee 10.0.2.60

Programme de la Formation

Jour #1

  • DOF600 - Docker : Utilisation et Administration - 1 heure.
    • Prérequis
      • Matériel
      • Logiciels
      • Internet
    • Utilisation de l'Infrastructure
    • Programme de la Formation
  • DOF601 - La Virtualisation par Isolation - 3 heures.
    • Présentation de la Virtualisation par Isolation
      • Historique
    • Présentation des Namespaces
    • Présentation des CGroups
      • LAB #1 - Travailler avec les CGroups
        • 1.1 - Limitation de la Mémoire
        • 1.2 - Le Paquet cgroup-tools
          • La commande cgcreate
          • La Commande cgexec
          • La Commande cgdelete
          • Le Fichier /etc/cgconfig.conf
    • Présentation de Linux Containers
      • LAB #2 - Travailler avec LXC
        • 2.1 - Installation
        • 2.2 - Création d'un Conteneur Simple
        • 2.3 - Démarrage d'un Conteneur Simple
        • 2.4 - S'attacher à un Conteneur Simple
        • 2.5 - Commandes LXC de Base
          • La Commande lxc-console
          • La Commande lxc-stop
          • La Commande lxc-execute
          • La Commande lxc-info
          • La Commande lxc-freeze
          • La Commande lxc-unfreeze
          • Autres commandes
        • 2.6 - Création d'un Conteneur Non-Privilégié
          • User Namespaces
          • Création d'un Utilisateur Dédié
          • Création du Mappage
          • Création du Conteneur
          • Contrôle du Mappage
        • 2.7 - Création d'un Conteneur Éphémère
          • La Commande lxc-copy
        • 2.8 - Sauvegarde des Conteneurs
          • La Commande lxc-snapshot
  • DOF602 - Démarrer avec Docker - 3 heures.
    • Présentation de Docker
    • LAB #1 - Travailler avec Docker
      • 1.1 - Installer docker
      • 1.2 - Démarrer un Conteneur
      • 1.3 - Consulter la Liste des Conteneurs et Images
      • 1.4 - Rechercher une Image dans un Dépôt
      • 1.5 - Supprimer un Conteneur d'une Image
      • 1.6 - Créer une Image à partir d'un Conteneur Modifié
      • 1.7 - Supprimer une Image
      • 1.8 - Créer un Conteneur avec un Nom Spécifique
      • 1.9 - Exécuter une Commande dans un Conteneur
      • 1.10 - Injecter des Variables d'Environnement dans un Conteneur
      • 1.11 - Modifier le Nom d'Hôte d'un Conteneur
      • 1.12 - Mapper des Ports d'un Conteneur
      • 1.13 - Démarrer un Conteneur en mode Détaché
      • 1.14 - Accéder aux Services d'un Conteneur de l'Extérieur
      • 1.15 - Arrêter et Démarrer un Conteneur
      • 1.16 - Utiliser des Signaux avec un Conteneur
      • 1.17 - Forcer la Suppression d'un Conteneur en cours d'Exécution
      • 1.18 - Utilisation Simple d'un Volume
      • 1.19 - Télécharger une image sans créer un conteneur
      • 1.20 - S'attacher à un conteneur en cours d'exécution
      • 1.21 - Installer un logiciel dans le conteneur
      • 1.22 - Utilisation de la commande docker commit
      • 1.23 - Se connecter au serveur du conteneur de l'extérieur

Jour #2

  • DOF603 - Gérer et Stocker les Images Docker - 2 heures.
    • LAB #1 - Re-créer une image officielle docker
      • 1.1 - Utilisation d'un Dockerfile
      • 1.2 - FROM
      • 1.3 - RUN
      • 1.4 - ENV
      • 1.5 - VOLUME
      • 1.6 - COPY
      • 1.7 - ENTRYPOINT
      • 1.8 - EXPOSE
      • 1.9 - CMD
      • 1.10 - Autres Commandes
    • LAB #2 - Créer un Dockerfile
      • 2.1 - Création et test du script
      • 2.2 - Bonnes Pratiques liées au Cache
    • LAB #3 - Installer un Registre Privé
      • 3.1 - Créer un Registre local,
      • 3.2 - Créer un Serveur de Registre Dédié
        • Configurer le clone comme Registre Dédié
        • Configurer le Client
  • DOF604 - Gestion des Volumes, du Réseau et des Ressources - 2 heures.
    • LAB #1 - Gestion des Volumes
      • 1.1 - Gestion Automatique par Docker
      • 1.2 - Gestion Manuelle d'un Volume
    • LAB #2 - Gestion du Réseau
      • 2.1 - L'Approche Réseau Docker
        • Bridge
        • Host
        • None
        • Liens
      • 2.2 - Lancer Wordpress dans un container
      • 2.3 - Gestion d'une Architecture de Microservices
    • LAB #3 - Superviser les Conteneurs
      • 3.1 - Les Journaux
      • 3.2 - Les Processus
      • 3.3 - L'Activité en Continu
    • LAB #4 - Gestion des Ressources
      • 4.1 - Limiter la Mémoire
  • DOF605 - Docker Compose, Docker Machine et Docker Swarm - 3 heures.
    • LAB #1 - Docker Compose
      • 1.1 - Installation
      • 1.2 - Utiliser docker-compose
    • LAB #2 - Docker Machine
      • 2.1 - Présentation
      • 2.2 - Création de Machines Virtuelles Docker
      • 2.3 - Lister les VM Docker
      • 2.4 - Obtenir l'adresse IP des VM
      • 2.5 - Se connecter à une VM Docker
    • LAB #3 - Docker Swarm
      • 3.1 - Présentation
      • 3.2 - Initialiser Docker Swarm
      • 3.3 - Le Statut Leader
      • 3.4 - Rejoindre le Swarm
      • 3.5 - Consulter les Informations de Swarm
      • 3.6 - Démarrer un Service
      • 3.7 - Augmentation et Réduction du Service
      • 3.8 - Consulter le Statut d'un Nœud
      • 3.9 - Haute Disponibilité
      • 3.10 - Supprimer un Service
      • 3.11 - Sauvegarder Docker Swarm
      • 3.12 - Restaurer Docker Swarm

Jour #3

  • DOF606 - Gestion du Réseau Overlay avec Docker en mode Swarm - 2 heures.
    • Contenu du Module
    • L'Approche Réseau Docker
    • LAB #1 - Gestion du Réseau overlay
      • 1.1 - Création d'un Réseau overlay
      • 1.2 - Création d'un Service
      • 1.3 - Déplacer le Service vers un autre Réseau overlay
      • 1.4 - DNS container discovery
      • 1.5 - Création d'un Réseau overlay Personnalisé
    • LAB #2 - Gestion de l'Architecture des Microservices
      • 2.1 - Mise en Place avec Docker Swarm avec des réseaux Overlay
  • DOF607 - Gestion de la Sécurité de Docker - 4 heures.
    • Contenu du Module
    • LAB #1 - Utilisation des Docker Secrets
    • LAB #2 - Création d'un Utilisateur de Confiance pour Contrôler le Daemon Docker
    • LAB #3 - Le Script docker-bench-security.sh
    • LAB #4 - Sécurisation de la Configuration de l'Hôte Docker
      • 4.1 - [WARN] 1.2.1 - Ensure a separate partition for containers has been created
      • 4.2 - [WARN] 1.2.3 - Ensure auditing is configured for the Docker daemon
    • LAB #5 - Sécurisation de la Configuration du daemon Docker
      • 5.1 - [WARN] 2.1 - Ensure network traffic is restricted between containers on the default bridge
      • 5.2 - [WARN] 2.8 - Enable user namespace support
      • 5.3 - [WARN] 2.11 - Ensure that authorization for Docker client commands is enabled
      • 5.4 - [WARN] 2.12 - Ensure centralized and remote logging is configured
      • 5.5 - [WARN] 2.14 - Ensure Userland Proxy is Disabled
      • 5.6 - [WARN] 2.17 - Ensure containers are restricted from acquiring new privileges
      • 5.7 - Le Fichier /etc/docker/daemon.json
    • LAB #6 - Sécurisation des Images et les Fichiers de Construction
      • 6.1 - [WARN] 4.1 - Ensure a user for the container has been created
      • 6.2 - [WARN] 4.5 - Ensure Content trust for Docker is Enabled
      • 6.3 - [WARN] 4.6 - Ensure that HEALTHCHECK instructions have been added to container images
    • LAB #7 - Sécurisation du Container Runtime
      • 7.1 - [WARN] 5.1 - Ensure AppArmor Profile is Enabled
      • 7.2 - [WARN] 5.2 - Ensure SELinux security options are set, if applicable
      • 7.3 - [WARN] 5.10 - Ensure memory usage for container is limited
      • 7.4 - [WARN] 5.11 - Ensure CPU priority is set appropriately on the container
      • 7.5 - [WARN] 5.12 - Ensure the container's root filesystem is mounted as read only
      • 7.6 - [WARN] 5.14 - Ensure 'on-failure' container restart policy is set to '5'
      • 7.7 - [WARN] 5.25 - Ensure the container is restricted from acquiring additional privileges
      • 7.8 - [WARN] 5.26 - Ensure container health is checked at runtime
      • 7.9 - [WARN] 5.28 - Ensure PIDs cgroup limit is used
    • LAB #8 - Sécurisation des Images avec Docker Content Trust
      • 8.1 - DOCKER_CONTENT_TRUST
      • 8.2 - DCT et la commande docker pull
        • L'option disable-content-trust
      • 8.3 - DCT et la commande docker push
      • 8.4 - DCT et la commande docker build
        • Créer un deuxième Repositry
        • Supprimer une Signature
    • LAB #9 - Sécurisation du Socket du Daemon Docker
      • 9.1 - Création du Certificat de l'Autorité de Certification
      • 9.2 - Création du Certificat du Serveur Hôte du Daemon Docker
      • 9.3 - Création du Certificat du Client
      • 9.4 - Démarrage du Daemon Docker avec une Invocation Directe
      • 9.5 - Configuration du Client
  • DOF608 - Validation de la Formation - 1 heure.
    • Support de Cours
    • Rappel du Programme de la Formation
      • Jour #1
      • Jour #2
      • Jour #3
    • Évaluation de la Formation
    • Validation des acquis

Copyright © 2022 Hugh Norris - Document non-contractuel. Le programme peut être modifié sans préavis.

Menu