all repos — slides @ ed0e0f08b83cf278601cbd190e474107275fc2a7

Reveal-md slides I made for various occasions

réalise/_static/Docker.html (view raw)

  1<!DOCTYPE html>
  2<html lang="en">
  3  <head>
  4    <meta charset="utf-8" />
  5    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  6
  7    <title>Les bases de Docker</title>
  8    <link rel="shortcut icon" href="./favicon.ico" />
  9    <link rel="stylesheet" href="./dist/reset.css" />
 10    <link rel="stylesheet" href="./dist/reveal.css" />
 11    <link rel="stylesheet" href="/_assets/./_themes/5ika.css" id="theme" />
 12    <link rel="stylesheet" href="./css/highlight/github.css" />
 13
 14
 15  </head>
 16  <body>
 17    <div class="reveal">
 18      <div class="slides"><section  data-markdown><script type="text/template">
 19
 20# Les bases de Docker
 21</script></section><section  data-markdown><script type="text/template">
 22<center>
 23
 24![Logo Docker](img/docker_logo.png)
 25
 26</center>
 27</script></section><section  data-markdown><script type="text/template">
 28# Virtualisation ?
 29
 30<center>
 31
 32![Virtualisation](img/virtualization.png)
 33
 34</center>
 35</script></section><section  data-markdown><script type="text/template">
 36# C'est quoi Docker ? 🐋
 37
 38- Virtualisation extrêmement légère et rapide
 39- Introduit le concept de **conteneur**
 40- Ouvre plein de nouvelles possibilités (DevOps)
 41- Une application peut être déplacée avec son propre OS
 42- En grande partie Open-source
 43- (Pas dinterface graphique => ligne de commande)
 44</script></section><section  data-markdown><script type="text/template">
 45# Pourquoi on voit cela ?
 46
 47Docker permet d'obtenir tout un système Linux en quelques secondes.
 48Cela sert à...
 49
 50- Tester des choses dans un OS isolé sans risqué de casser son ordinateur (OS jetable)
 51- Simuler l'exécution de programme sur des serveurs distants
 52- Avoir un OS commun avec les mêmes programmes installés pour exécuter des apps
 53- Encapsuler notre app pour pouvoir l'exécuter plus facilement partout
 54- Comprendre comment fonctionne le Cloud computing et le CI/CD
 55</script></section><section  data-markdown><script type="text/template">
 56# C'est quoi un conteneur ? 📦
 57
 58C'est un système d'exploitation que l'on a réduit au minimal et qui tourne
 59sur notre machine, au dessus de l'OS principal.
 60
 61Par exemple, sur mon Windows, je peux avoir un conteneur faisant
 62tourner un Linux (Ubuntu) minimal et dans ce Linux, je fais tourner
 63un serveur Apache.
 64</script></section><section  data-markdown><script type="text/template">
 65![Conteneurs Docker](img/docker_containers.png)
 66</script></section><section  data-markdown><script type="text/template">
 67# Comment créer un conteneur ?
 68
 69Pour créer un conteneur, il faut avoir une **image** Docker.
 70
 71Une image, dans ce contexte, est une sorte d'archive qui contient
 72tout ce qui faut pour créer un système d'exploitation minimal.
 73</script></section><section  data-markdown><script type="text/template">
 74# Comment obtenir une image ?
 75
 76Le site [Docker Hub](https://hub.docker.com/search?q=) référencie toutes les images
 77que l'on peut récupérer sur sa machine et utiliser pour créer un conteneur.
 78
 79Par exemple, l'image nommée `ubuntu:23.04` permet de créer un conteneur
 80faisant tourner Ubuntu à la version 23.04.
 81
 82🫵 Sur votre machine, récupérez cette image en faisant:
 83
 84```bash
 85docker pull ubuntu:23.04
 86```
 87</script></section><section  data-markdown><script type="text/template">
 88Pour lister les images présentes sur sa machine, on peut entrer:
 89
 90```bash
 91docker images
 92```
 93
 94Vous devriez voir apparaître une ligne avec `ubuntu`.
 95</script></section><section  data-markdown><script type="text/template">
 96# Comment créer un conteneur ?
 97
 98On utilise une image en l'instanciant pour créer un conteneur.
 99
100🫵 Essayez la commande suivante:
101
102```bash
103docker run -it ubuntu:23.04
104```
105
106On crée ainsi un conteneur qui tourne sur ma machine.
107</script></section><section  data-markdown><script type="text/template">
108<center>
109
110![Instanciation](img/docker_how.png)
111
112</center>
113</script></section><section  data-markdown><script type="text/template">
114L'image `ubuntu:23.04` fait que nous sommes directement placés
115dans un shell lorsqu'on crée le conteneur.
116
117Vous pouvez quitter le conteneur en entrant `exit` ou faire les commandes
118suivantes dans un second terminal.
119
120Si vous quittez le conteneur, il passera dans l'état *stoppé*.
121
122</script></section><section  data-markdown><script type="text/template">
123# Comment voir les conteneurs ?
124
125La commande suivante permet de lister tous les conteneurs
126**qui tournent** actuellement sur ma machine.
127
128```
129docker ps
130```
131
132On peut voir tous les conteneurs, y compris les stoppés, avec
133
134```
135docker ps -a
136```
137
138> Automatiquement, Docker attribue un nom aléatoire à votre conteneur
139> afin de l'identifier.
140
141🫵 Essayez ces commandes et retenez le nom assigné à votre conteneur Ubuntu.
142</script></section><section  data-markdown><script type="text/template">
143# Supprimer un conteneur
144
145Il va vite devenir nécessaire de faire le ménage dans les conteneurs sur
146votre machine.
147
148🫵 Supprimez votre conteneur Ubuntu avec la commande suivante:
149
150```
151docker rm -f nom_conteneur
152```
153
154> Il faut remplacer `nom_conteneur` par le nom du conteneur que vous voulez supprimer.</script></section></div>
155    </div>
156
157    <script src="./dist/reveal.js"></script>
158
159    <script src="./plugin/markdown/markdown.js"></script>
160    <script src="./plugin/highlight/highlight.js"></script>
161    <script src="./plugin/zoom/zoom.js"></script>
162    <script src="./plugin/notes/notes.js"></script>
163    <script src="./plugin/math/math.js"></script>
164    <script>
165      function extend() {
166        var target = {};
167        for (var i = 0; i < arguments.length; i++) {
168          var source = arguments[i];
169          for (var key in source) {
170            if (source.hasOwnProperty(key)) {
171              target[key] = source[key];
172            }
173          }
174        }
175        return target;
176      }
177
178      // default options to init reveal.js
179      var defaultOptions = {
180        controls: true,
181        progress: true,
182        history: true,
183        center: true,
184        transition: 'default', // none/fade/slide/convex/concave/zoom
185        slideNumber: true,
186        plugins: [
187          RevealMarkdown,
188          RevealHighlight,
189          RevealZoom,
190          RevealNotes,
191          RevealMath
192        ]
193      };
194
195      // options from URL query string
196      var queryOptions = Reveal().getQueryHash() || {};
197
198      var options = extend(defaultOptions, {"transition":"fade"}, queryOptions);
199    </script>
200
201
202    <script>
203      Reveal.initialize(options);
204    </script>
205  </body>
206</html>