réalise/_static/index.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 d’interface 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>