<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wikiold.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Virt%2FDocker</id>
	<title>Virt/Docker - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wikiold.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Virt%2FDocker"/>
	<link rel="alternate" type="text/html" href="https://wikiold.home.tartarefr.eu/index.php?title=Virt/Docker&amp;action=history"/>
	<updated>2026-07-07T00:01:53Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wikiold.home.tartarefr.eu/index.php?title=Virt/Docker&amp;diff=3147&amp;oldid=prev</id>
		<title>Didier : Page créée avec « Logo Docker  == Théorie ==  [https://www.docker.com/ Docker] est donc une plateforme de virtualisation par conteneur qui, contrairement... »</title>
		<link rel="alternate" type="text/html" href="https://wikiold.home.tartarefr.eu/index.php?title=Virt/Docker&amp;diff=3147&amp;oldid=prev"/>
		<updated>2016-04-19T14:32:55Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &lt;a href=&quot;/index.php/Fichier:LogoDocker.png&quot; title=&quot;Fichier:LogoDocker.png&quot;&gt;centré|Logo Docker&lt;/a&gt;  == Théorie ==  [https://www.docker.com/ Docker] est donc une plateforme de virtualisation par conteneur qui, contrairement... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Fichier:LogoDocker.png|centré|Logo Docker]]&lt;br /&gt;
&lt;br /&gt;
== Théorie ==&lt;br /&gt;
&lt;br /&gt;
[https://www.docker.com/ Docker] est donc une plateforme de virtualisation par conteneur qui, contrairement à la virtualisation sur hyperviseur où de nouvelles machines complètes doivent être créée, va permettre de créer des conteneurs qui vont uniquement contenir une ou plusieurs applications. Empaquetées sous forme de conteneurs, ces applications pourront ainsi être facilement déployées sur tout hôte exécutant Docker, chaque conteneur restant parfaitement indépendant !&lt;br /&gt;
&lt;br /&gt;
Le nom et le vocabulaire de cette technologie n’ont pas été choisis au hasard : tout comme les conteneurs en métal, toujours fabriqués selon les mêmes standards, peuvent être pris en charge par n’importe quel transporteur (et peu importe ce qu’il y a dedans), une application « Dockerisée » doit pouvoir être exécutée sur n’importe quel hôte faisant tourner Docker, peu importe son contenu !&lt;br /&gt;
&lt;br /&gt;
=== La virtualisation par hyperviseur ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Virtualisation-Hyperviser.svg|Virtualisation par hyperviseur|600px]]&lt;br /&gt;
&lt;br /&gt;
Avec la virtualisation par [https://fr.wikipedia.org/wiki/Hyperviseur hyperviseur] de type 2 (VMware Workstation, VirtualBox…), chaque hôte invité virtualise un environnement complet, ce qui permet notamment de pouvoir exécuter un système virtualisé différent du système hôte (typiquement du Windows sur un GNU/Linux par exemple).&lt;br /&gt;
&lt;br /&gt;
=== La virtualisation par conteneur ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Virtualisation-Container.svg|Virtualisation par containeur|600px]]&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, conteneur virtualisé et système hôte sont fortement liés et c’est pour cela que cette technologie, qui existe pourtant depuis longtemps (OpenVZ a déjà presque 10 ans !), était peu répandue jusqu’à maintenant. Certains appellent d’ailleurs ce type de virtualisation la paravirtualisation...&lt;br /&gt;
&lt;br /&gt;
=== Principe d&amp;#039;utilisation ===&lt;br /&gt;
&lt;br /&gt;
Docker simplifie l’utilisation d’outils existants, et c’est sa principale force. S’il est possible d’isoler des conteneurs : processus, interfaces réseau, points de montage, c’est grâce à l’utilisation des &amp;#039;&amp;#039;&amp;#039;namespaces&amp;#039;&amp;#039;&amp;#039; Linux. Un processus qui s’exécute dans un espace de nom correspondant à un conteneur ne sera visible que par ce conteneur et le système hôte exécutant ce conteneur. En comparant les deux précédents schémas, on remarque que la virtualisation par conteneur est plus rapide que la virtualisation par hyperviseur car les conteneurs ont directement accès aux ressources matérielles de l’hôte. La consommation de ces ressources pouvant être gérées par l’hôte en question grâce aux &amp;#039;&amp;#039;&amp;#039;[https://fr.wikipedia.org/wiki/Cgroups control groups]&amp;#039;&amp;#039;&amp;#039; (cgroups) du noyau Linux.&lt;br /&gt;
&lt;br /&gt;
Tout ceci fait donc de Docker un &amp;#039;&amp;#039;&amp;#039;chroot dopé aux stéroïdes&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
À ses débuts Docker était une couche d’abstraction à LXC car il permettait de s’affranchir de la complexité de ce dernier en gérant pour nous un certain nombre d’opérations. Aujourd’hui Docker va beaucoup plus loin que LXC puisqu’il dispose de sa propre plate-forme : [http://blog.docker.com/2014/03/docker-0-9-introducing-execution-drivers-and-libcontainer/ Libcontainer] (bien que LXC soit toujours proposé sous forme de plugin).&lt;br /&gt;
&lt;br /&gt;
Et ce qui démarque Docker des autres, c’est la rapidité de la mise en place des flux de travail : tout est fait pour réduire le temps entre le développement, les tests, le déploiement et l’utilisation de votre application en production. Et pour cela, on trouve les images.&lt;br /&gt;
&lt;br /&gt;
Une image est le composant de base de Docker. C’est un instantané d’un système d’exploitation (par exemple Debian). Ces images sont disponibles sur un dépôt public, géré par Docker, appelé le registre.&lt;br /&gt;
&lt;br /&gt;
==== Les images ====&lt;br /&gt;
&lt;br /&gt;
[[Fichier:DockerContainer.svg|Conteneur Docker|600px]]&lt;br /&gt;
&lt;br /&gt;
L’exemple ci-dessus se compose de deux conteneurs, parfaitement isolés (d’où les couleurs différentes). On trouve à la base les composants nécessaires à Docker, et qui sont fournis par le noyau Linux de l’hôte. On trouve ensuite deux images : Debian et [https://fr.wikipedia.org/wiki/BusyBox BusyBox].&lt;br /&gt;
&lt;br /&gt;
Une image ne peut être modifiée directement, elle reste toujours en lecture seule.&lt;br /&gt;
&lt;br /&gt;
Remarquez qu’un environnement d’exécution peut nécessiter l’empilement de plusieurs images (ici mariadb, puis apache), rendu possible par les fonctionnalités de &amp;#039;&amp;#039;&amp;#039;[https://fr.wikipedia.org/wiki/Copy-On-Write copy-on-write]&amp;#039;&amp;#039;&amp;#039; des modules de stockages utilisés par Docker ([https://fr.wikipedia.org/wiki/Aufs AuFS], [https://fr.wikipedia.org/wiki/Btrfs Btrfs]).&lt;br /&gt;
&lt;br /&gt;
Enfin, on trouve la couche supérieure, accessible en écriture, qui contiendra toutes les modifications apportées à l’application.&lt;br /&gt;
{{Admon/tip||Au lancement d&amp;#039;un conteneur exécutant une application à partir d’une image, Docker va monter le système de fichier de l’image souhaitée en lecture seule, et ajouter une couche accessible en écriture par dessus, via UnionFS.}}&lt;br /&gt;
On fait donc de sacrées économies de consommation puisque plusieurs conteneurs utilisant la même image de base utiliseront le même système de fichiers !&lt;br /&gt;
&lt;br /&gt;
==== Le Hub ====&lt;br /&gt;
&lt;br /&gt;
Le [https://hub.docker.com/ Hub Docker] est un GitHub pour les images Docker.&lt;br /&gt;
&lt;br /&gt;
Pour conserver les modifications apportées à l&amp;#039;application, Il faut enregistrer celles-ci dans une nouvelle image qui sera uniquement composée des différences apportées. Cette image sera identifiée par Docker grâce à un numéro unique, et pourra être pousser (push) vers le dépôt public Docker.&lt;br /&gt;
&lt;br /&gt;
Le Docker Hub est aux images ce que git est au code. Les commandes sont les mêmes.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Installation du paquet RPM ===&lt;br /&gt;
Docker est supporté sur CentOS 6 et 7, avec de légères différences durant l&amp;#039;installation. Il est vivement recommandé de partir d&amp;#039;un hôte ayant les dernières mises à jour: &amp;lt;code&amp;gt;yum update&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CentOS 6&amp;#039;&amp;#039;&amp;#039;: paquet présent dans le dépôt &amp;#039;&amp;#039;&amp;#039;EPEL&amp;#039;&amp;#039;&amp;#039;&amp;lt;pre&amp;gt;yum install docker-io&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CentOS 7&amp;#039;&amp;#039;&amp;#039;: paquet présent dans le dépôt &amp;#039;&amp;#039;&amp;#039;EPEL&amp;#039;&amp;#039;&amp;#039;&amp;lt;pre&amp;gt;yum install docker&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Admon/warning|Version du noyau CentOS 6|Pour utiliser Docker sur CentOS6, il faut, au minimum, un noyau de version &amp;#039;&amp;#039;&amp;#039;2.6.32-431&amp;#039;&amp;#039;&amp;#039; car celui-ci contient des adaptations pour exécuter Docker.}}&lt;br /&gt;
&lt;br /&gt;
=== Exécuter Docker sans les droits root ===&lt;br /&gt;
&lt;br /&gt;
La documentation nous indique que le daemon Docker tourne toujours avec l’utilisateur root, et qu’il se connecte à une [https://fr.wikipedia.org/wiki/Berkeley_sockets#Types_de_sockets socket Unix] en lieu et place d’un socket TCP. L’utilisateur root est par défaut propriétaire de ce socket Unix, et ne peut donc être accessible qu’avec la commande sudo.&lt;br /&gt;
&lt;br /&gt;
Pour éviter d’utiliser sudo à tort et à travers, nous allons pouvoir créer un groupe Unix nommé &amp;#039;&amp;#039;&amp;#039;docker&amp;#039;&amp;#039;&amp;#039; pour nous y ajouter. Ainsi, les propriétés du daemon docker seront modifiées pour que celui-ci soit accessible en lecture / écriture pour les membres du groupe docker. Certes le daemon doit toujours fonctionner en tant que root, mais si nous utilisons le client docker en tant que membre du groupe docker, alors nous n’aurons plus besoin d’utiliser sudo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# On ajoute le groupe docker s&amp;#039;il n&amp;#039;existe pas déjà.&lt;br /&gt;
groupadd docker&lt;br /&gt;
 &lt;br /&gt;
# On ajoute l&amp;#039;utilisateur courant (nous) &amp;quot;${USER}&amp;quot; au groupe.&lt;br /&gt;
# On peut y mettre n&amp;#039;importe quel utilisateur&lt;br /&gt;
# Il faudra se reconnecter pour que les modifications prennent effet.&lt;br /&gt;
gpasswd -a ${USER} docker&lt;br /&gt;
 &lt;br /&gt;
# On redémarre le daemon.&lt;br /&gt;
service docker restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
C’est du bonus hein… Cela permet aussi de gérer la [https://docs.docker.com/articles/security/#dockersecurity-daemon surface d’attaque] de Docker, mais vous pouvez très bien sauter cette étape et continuer à utiliser Docker avec sudo.&lt;br /&gt;
&lt;br /&gt;
=== Tests ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;docker version&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Client version: 1.7.1&lt;br /&gt;
Client API version: 1.19&lt;br /&gt;
Go version (client): go1.4.2&lt;br /&gt;
Git commit (client): 786b29d/1.7.1&lt;br /&gt;
OS/Arch (client): linux/amd64&lt;br /&gt;
Server version: 1.7.1&lt;br /&gt;
Server API version: 1.19&lt;br /&gt;
Go version (server): go1.4.2&lt;br /&gt;
Git commit (server): 786b29d/1.7.1&lt;br /&gt;
OS/Arch (server): linux/amd64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;docker info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Images: 7&lt;br /&gt;
Storage Driver: devicemapper&lt;br /&gt;
 Pool Name: docker-253:0-1183660-pool&lt;br /&gt;
 Pool Blocksize: 65.54 kB&lt;br /&gt;
 Backing Filesystem: extfs&lt;br /&gt;
 Data file: /dev/loop0&lt;br /&gt;
 Metadata file: /dev/loop1&lt;br /&gt;
 Data Space Used: 957.5 MB&lt;br /&gt;
 Data Space Total: 107.4 GB&lt;br /&gt;
 Data Space Available: 24.65 GB&lt;br /&gt;
 Metadata Space Used: 1.507 MB&lt;br /&gt;
 Metadata Space Total: 2.147 GB&lt;br /&gt;
 Metadata Space Available: 2.146 GB&lt;br /&gt;
 Udev Sync Supported: true&lt;br /&gt;
 Deferred Removal Enabled: false&lt;br /&gt;
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data&lt;br /&gt;
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata&lt;br /&gt;
 Library Version: 1.02.95-RHEL6 (2015-09-08)&lt;br /&gt;
Execution Driver: native-0.2&lt;br /&gt;
Logging Driver: json-file&lt;br /&gt;
Kernel Version: 2.6.32-573.22.1.el6.x86_64&lt;br /&gt;
Operating System: &amp;lt;unknown&amp;gt;&lt;br /&gt;
CPUs: 8&lt;br /&gt;
Total Memory: 7.685 GiB&lt;br /&gt;
Name: webdev-test.b2pweb.com&lt;br /&gt;
ID: TZXP:Z74H:7XCC:JMST:ZAKF:R5Y5:DSOR:JHGO:Z4GC:T3SZ:662F:3NR2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Les conteneurs ==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer une image, on va interroger le [https://hub.docker.com/ docker hub] pour lister toutes les images du registre:&lt;br /&gt;
&amp;lt;pre&amp;gt;docker search centos&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED&lt;br /&gt;
centos                          The official build of CentOS.                   2147      [OK]       &lt;br /&gt;
jdeathe/centos-ssh              CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8...   20                   [OK]&lt;br /&gt;
jdeathe/centos-ssh-apache-php   CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...   16                   [OK]&lt;br /&gt;
nimmis/java-centos              This is docker images of CentOS 7 with dif...   8                    [OK]&lt;br /&gt;
torusware/speedus-centos        Always updated official CentOS docker imag...   7                    [OK]&lt;br /&gt;
nickistre/centos-lamp           LAMP on centos setup                            3                    [OK]&lt;br /&gt;
centos/mariadb55-centos7                                                        3                    [OK]&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Un grand nombre de résultats sont proposés. On observe que le premier résultat indique une image CentOS officielle, ce qui nous assure qu’elle a été validée par l’équipe de Docker. Les images gérées par l’équipe de Docker se remarquent par le format de leur nom, qui est de la forme nom-image alors que les &amp;#039;&amp;#039;&amp;#039;non-officielles&amp;#039;&amp;#039;&amp;#039; sont plutôt de la forme &amp;#039;&amp;#039;&amp;#039;utilisateur/nom-image&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
On récupère l&amp;#039;image officielle CentOS 7 (latest)&lt;br /&gt;
&amp;lt;pre&amp;gt;docker pull centos&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
latest: Pulling from centos&lt;br /&gt;
47d44cb6f252: Pull complete &lt;br /&gt;
8aa7f4a1dd13: Pull complete &lt;br /&gt;
e0f5867add13: Pull complete &lt;br /&gt;
eeb3a076a0be: Pull complete &lt;br /&gt;
Digest: sha256:1b9adf413b3ab95ce430c2039954bb0db0c8e2672c48182f2c5b3d30373d5b71&lt;br /&gt;
Status: Downloaded newer image for centos:latest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ainsi quer la version 6&lt;br /&gt;
&amp;lt;pre&amp;gt;docker pull centos:6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
6: Pulling from centos&lt;br /&gt;
9868edceea88: Pull complete &lt;br /&gt;
e0eab6e60b7e: Pull complete &lt;br /&gt;
61bf77ab8841: Pull complete &lt;br /&gt;
47d44cb6f252: Already exists &lt;br /&gt;
Digest: sha256:57f0027b92985edbd0eb87818b73d5dd771dd5955e6b794d624c8a79a4bd4795&lt;br /&gt;
Status: Downloaded newer image for centos:6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On liste les images déjà téléchargées. La sortie de la commande suivante indique que nous avons récupéré les image portant l’ID 61bf77ab8841 et eeb3a076a0be dans le dépôt intitulé « centos ». Un ID permet d’identifier de manière unique la version d’une image. Ensuite, comme un ID n’est pas forcément explicite pour désigner une version, on lui affecte un ou plusieurs tags, ici « latest » et « 6 ». Plusieurs tags peuvent effectivement désigner la même image, mais chaque version d’image ne possède qu’un ID.&lt;br /&gt;
&amp;lt;pre&amp;gt;docker images&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE&lt;br /&gt;
centos              6                   61bf77ab8841        2 weeks ago         228.9 MB&lt;br /&gt;
centos              latest              eeb3a076a0be        2 weeks ago         196.7 MB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
L&amp;#039;empilement peut être affiché avec l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;--all&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;docker images --all&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE&lt;br /&gt;
centos              6                   61bf77ab8841        2 weeks ago         228.9 MB&lt;br /&gt;
&amp;lt;none&amp;gt;              &amp;lt;none&amp;gt;              e0eab6e60b7e        2 weeks ago         228.9 MB&lt;br /&gt;
&amp;lt;none&amp;gt;              &amp;lt;none&amp;gt;              9868edceea88        2 weeks ago         228.9 MB&lt;br /&gt;
centos              latest              eeb3a076a0be        2 weeks ago         196.7 MB&lt;br /&gt;
&amp;lt;none&amp;gt;              &amp;lt;none&amp;gt;              e0f5867add13        2 weeks ago         196.7 MB&lt;br /&gt;
&amp;lt;none&amp;gt;              &amp;lt;none&amp;gt;              8aa7f4a1dd13        2 weeks ago         196.7 MB&lt;br /&gt;
&amp;lt;none&amp;gt;              &amp;lt;none&amp;gt;              47d44cb6f252        7 months ago        0 B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Les images intermédiaires correspondent aux différentes commandes qui ont été utilisées pour générer l’image finale. Ces commandes peuvent être affichées avec la commande history.&lt;br /&gt;
&amp;lt;pre&amp;gt;docker history centos:6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT&lt;br /&gt;
61bf77ab8841        2 weeks ago         /bin/sh -c #(nop) CMD [&amp;quot;/bin/bash&amp;quot;]             0 B                 &lt;br /&gt;
e0eab6e60b7e        2 weeks ago         /bin/sh -c #(nop) LABEL name=CentOS Base Imag   0 B                 &lt;br /&gt;
9868edceea88        2 weeks ago         /bin/sh -c #(nop) ADD file:ae8f506cbd1f016c67   228.9 MB            &lt;br /&gt;
47d44cb6f252        7 months ago        /bin/sh -c #(nop) MAINTAINER The CentOS Proje   0 B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Premiers lancements ===&lt;br /&gt;
&lt;br /&gt;
On lance notre premier conteneur. Évidemment l&amp;#039;intérêt est purement éducatif, car celui-ci ne fera qu&amp;#039;afficher &amp;lt;code&amp;gt;Hello World!&amp;lt;/code&amp;gt; et se terminera.&lt;br /&gt;
{{Admon/important|Durée de vie des conteneurs|La durée de vie d’un conteneur dépend directement du temps de vie des processus qui y sont exécutés.}}&lt;br /&gt;
&amp;lt;pre&amp;gt;docker run centos:latest /bin/echo &amp;#039;Hello World!&amp;#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hello World!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On lance maintenant l&amp;#039;interpréteur Bash à l&amp;#039;intérieur de notre conteneur. L&amp;#039;option &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039; laisse l&amp;#039;entrée standard ouverte et l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039; alloue un pseudo-terminal à la commande.&lt;br /&gt;
&amp;lt;pre&amp;gt;docker run -t -i centos:6 /bin/bash&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[root@a3bcca2ae195 /]# hostname&lt;br /&gt;
a3bcca2ae195&lt;br /&gt;
[root@a3bcca2ae195 /]# exit&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On liste nos conteneurs (l&amp;#039;option -a permet d&amp;#039;afficher tous les conteneurs car seul les actifs sont affiché par défaut).&lt;br /&gt;
&amp;lt;pre&amp;gt;docker ps -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONTAINER ID        IMAGE               COMMAND                CREATED              STATUS                          PORTS               NAMES&lt;br /&gt;
a3bcca2ae195        centos:6            &amp;quot;/bin/bash&amp;quot;            35 seconds ago       Exited (0) 12 seconds ago                           angry_goodall       &lt;br /&gt;
f947fb083eaa        centos:6            &amp;quot;/bin/echo &amp;#039;Hello Wo   About a minute ago   Exited (0) About a minute ago                       ecstatic_kirch      &lt;br /&gt;
b6710cdfbcb1        centos:latest       &amp;quot;/bin/echo &amp;#039;Hello Wo   About a minute ago   Exited (0) About a minute ago                       lonely_feynman&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut visualiser tous les détails d&amp;#039;une image&lt;br /&gt;
&amp;lt;pre&amp;gt;docker inspect centos:6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Id&amp;quot;: &amp;quot;61bf77ab884102c059826f37af32b766aec3a0145af35dbc296bc33754e74757&amp;quot;,&lt;br /&gt;
    &amp;quot;Parent&amp;quot;: &amp;quot;e0eab6e60b7ea4336660dfcbc7ce837621f191d7d6ea587cdf225eecd2001dc6&amp;quot;,&lt;br /&gt;
    &amp;quot;Comment&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;Created&amp;quot;: &amp;quot;2016-04-01T21:29:01.147650406Z&amp;quot;,&lt;br /&gt;
    &amp;quot;Container&amp;quot;: &amp;quot;01a4934c6001e17bfa875876616d915ee5c7a2fdd094f63c4ff84c70a9da3c43&amp;quot;,&lt;br /&gt;
    &amp;quot;ContainerConfig&amp;quot;: {&lt;br /&gt;
        &amp;quot;Hostname&amp;quot;: &amp;quot;4d7e41fcce2c&amp;quot;,&lt;br /&gt;
        &amp;quot;Domainname&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;User&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;AttachStdin&amp;quot;: false,&lt;br /&gt;
        &amp;quot;AttachStdout&amp;quot;: false,&lt;br /&gt;
        &amp;quot;AttachStderr&amp;quot;: false,&lt;br /&gt;
        &amp;quot;PortSpecs&amp;quot;: null,&lt;br /&gt;
        &amp;quot;ExposedPorts&amp;quot;: null,&lt;br /&gt;
        &amp;quot;Tty&amp;quot;: false,&lt;br /&gt;
        &amp;quot;OpenStdin&amp;quot;: false,&lt;br /&gt;
        &amp;quot;StdinOnce&amp;quot;: false,&lt;br /&gt;
        &amp;quot;Env&amp;quot;: null,&lt;br /&gt;
        &amp;quot;Cmd&amp;quot;: [&lt;br /&gt;
            &amp;quot;/bin/sh&amp;quot;,&lt;br /&gt;
            &amp;quot;-c&amp;quot;,&lt;br /&gt;
            &amp;quot;#(nop) CMD [\&amp;quot;/bin/bash\&amp;quot;]&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;Image&amp;quot;: &amp;quot;e0eab6e60b7ea4336660dfcbc7ce837621f191d7d6ea587cdf225eecd2001dc6&amp;quot;,&lt;br /&gt;
        &amp;quot;Volumes&amp;quot;: null,&lt;br /&gt;
        &amp;quot;VolumeDriver&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;WorkingDir&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;Entrypoint&amp;quot;: null,&lt;br /&gt;
        &amp;quot;NetworkDisabled&amp;quot;: false,&lt;br /&gt;
        &amp;quot;MacAddress&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;OnBuild&amp;quot;: null,&lt;br /&gt;
        &amp;quot;Labels&amp;quot;: {&lt;br /&gt;
            &amp;quot;build-date&amp;quot;: &amp;quot;2016-03-31&amp;quot;,&lt;br /&gt;
            &amp;quot;license&amp;quot;: &amp;quot;GPLv2&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;CentOS Base Image&amp;quot;,&lt;br /&gt;
            &amp;quot;vendor&amp;quot;: &amp;quot;CentOS&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;DockerVersion&amp;quot;: &amp;quot;1.9.1&amp;quot;,&lt;br /&gt;
    &amp;quot;Author&amp;quot;: &amp;quot;The CentOS Project \u003ccloud-ops@centos.org\u003e&amp;quot;,&lt;br /&gt;
    &amp;quot;Config&amp;quot;: {&lt;br /&gt;
        &amp;quot;Hostname&amp;quot;: &amp;quot;4d7e41fcce2c&amp;quot;,&lt;br /&gt;
        &amp;quot;Domainname&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;User&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;AttachStdin&amp;quot;: false,&lt;br /&gt;
        &amp;quot;AttachStdout&amp;quot;: false,&lt;br /&gt;
        &amp;quot;AttachStderr&amp;quot;: false,&lt;br /&gt;
        &amp;quot;PortSpecs&amp;quot;: null,&lt;br /&gt;
        &amp;quot;ExposedPorts&amp;quot;: null,&lt;br /&gt;
        &amp;quot;Tty&amp;quot;: false,&lt;br /&gt;
        &amp;quot;OpenStdin&amp;quot;: false,&lt;br /&gt;
        &amp;quot;StdinOnce&amp;quot;: false,&lt;br /&gt;
        &amp;quot;Env&amp;quot;: null,&lt;br /&gt;
        &amp;quot;Cmd&amp;quot;: [&lt;br /&gt;
            &amp;quot;/bin/bash&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;Image&amp;quot;: &amp;quot;e0eab6e60b7ea4336660dfcbc7ce837621f191d7d6ea587cdf225eecd2001dc6&amp;quot;,&lt;br /&gt;
        &amp;quot;Volumes&amp;quot;: null,&lt;br /&gt;
        &amp;quot;VolumeDriver&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;WorkingDir&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;Entrypoint&amp;quot;: null,&lt;br /&gt;
        &amp;quot;NetworkDisabled&amp;quot;: false,&lt;br /&gt;
        &amp;quot;MacAddress&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;OnBuild&amp;quot;: null,&lt;br /&gt;
        &amp;quot;Labels&amp;quot;: {&lt;br /&gt;
            &amp;quot;build-date&amp;quot;: &amp;quot;2016-03-31&amp;quot;,&lt;br /&gt;
            &amp;quot;license&amp;quot;: &amp;quot;GPLv2&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;CentOS Base Image&amp;quot;,&lt;br /&gt;
            &amp;quot;vendor&amp;quot;: &amp;quot;CentOS&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;Architecture&amp;quot;: &amp;quot;amd64&amp;quot;,&lt;br /&gt;
    &amp;quot;Os&amp;quot;: &amp;quot;linux&amp;quot;,&lt;br /&gt;
    &amp;quot;Size&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;VirtualSize&amp;quot;: 228912764&lt;br /&gt;
}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Démonisation ===&lt;br /&gt;
&lt;br /&gt;
On va daemoniser notre conteneur avec l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039;. Cette fois la sortie est l&amp;#039;ID du conteneur.&lt;br /&gt;
&amp;lt;pre&amp;gt;docker run -t -i -d centos:6 /bin/bash&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;713ed98359e25eebd6316831d192c9094d5ec7b5bb8f1907ad444db8eabbb298&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afin de se simplifier la vie, on va obtenir son petit nom&lt;br /&gt;
&amp;lt;pre&amp;gt;docker ps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES&lt;br /&gt;
713ed98359e2        centos:6            &amp;quot;/bin/bash&amp;quot;         2 minutes ago       Up 2 minutes                            gloomy_jones&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pour visualiser la sortie standard de notre conteneur daemonisé, on lance la commande&lt;br /&gt;
** avec l&amp;#039;ID&amp;lt;pre&amp;gt;docker logs 713ed98359e25eebd6316831d192c9094d5ec7b5bb8f1907ad444db8eabbb298&amp;lt;/pre&amp;gt;&lt;br /&gt;
** avec son nom&amp;lt;pre&amp;gt;docker logs gloomy_jones&amp;lt;/pre&amp;gt;&lt;br /&gt;
* On peut s&amp;#039;attacher à ce conteneur&amp;lt;pre&amp;gt;docker attach gloomy_jones&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Le mettre en pause&amp;lt;pre&amp;gt;docker pause gloomy_jones&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Le sortir de sa léthargie imposée&amp;lt;pre&amp;gt;docker unpause gloomy_jones&amp;lt;/pre&amp;gt;&lt;br /&gt;
* L&amp;#039;arrêter&amp;lt;pre&amp;gt;docker stop gloomy_jones&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Le renommer&amp;lt;pre&amp;gt;docker rename gloomy_jones centos6&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Le supprimer&amp;lt;pre&amp;gt;docker rm centos6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Les commits ==&lt;br /&gt;
== Les liaisons ==&lt;br /&gt;
== Les volumes ==&lt;/div&gt;</summary>
		<author><name>Didier</name></author>
	</entry>
</feed>