« Docker » : différence entre les versions

De Justine's wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
Les notes de cettes pages sont prises à partir de la documentation de docker : [https://docs.docker.com/get-started/ https://docs.docker.com/get-started/]    
 
Les notes de cettes pages sont prises à partir de la documentation de docker : [https://docs.docker.com/get-started/ https://docs.docker.com/get-started/]  
 
= Présentation de Docker =
= Présentation de Docker =


Docker est une plateforme qui permet de développer, déployer et faire tourner des applications en conteneurs. L'usage de conteneur s'appelle la conteneurisation. Les conteneurs sont:
Docker est une plateforme qui permet de développer, déployer et faire tourner des applications en conteneurs. L'usage de conteneur s'appelle la conteneurisation. Les conteneurs sont:


*Flexibles : Tout peut être conteneurisé  
*Flexibles : Tout peut être conteneurisé  
*Légers  
*Légers  
*Interchangeables  
*Interchangeables  
Ligne 11 : Ligne 13 :
*Empilables  
*Empilables  


Un conteneur est lancé en faisant tourner une image : une image est un exécutable qui inclut tout ce dont a besoin le programme, et le conteneur est l'environnement d'exécution qui permet à cette image de fonctionner. Une fois lancé le conteneur est un processus utilisateur, que l'on peut lister avec docker ps. Les conteneurs partagent entre eux les ressources système et le noyau Linux. 
Un conteneur est lancé en faisant tourner une image : une image est un exécutable qui inclut tout ce dont a besoin le programme, et le conteneur est l'environnement d'exécution qui permet à cette image de fonctionner. Une fois lancé le conteneur est un processus utilisateur, que l'on peut lister avec docker ps. Les conteneurs partagent entre eux les ressources système et le noyau Linux. 


À la différence d'une VM, un conteneur peut tourner nativement sur n'importe quelle machine Linux; une même machine Linux peut utiliser plusieurs conteneurs, cette technologie est plus économe que les VM.
À la différence d'une VM, un conteneur peut tourner nativement sur n'importe quelle machine Linux; une même machine Linux peut utiliser plusieurs conteneurs, cette technologie est plus économe que les VM.
Ligne 21 : Ligne 23 :
[https://docs.docker.com/install/ https://docs.docker.com/install/]
[https://docs.docker.com/install/ https://docs.docker.com/install/]


Le versioning fonctionne sur le modèle : Année.Mois.Patch
Le versioning fonctionne sur le modèle : Année.Mois.Patch


Une fois installé, on peut tester avec <code>docker --version</code>.
Une fois installé, on peut tester avec <code>docker --version</code>.


On a plus d'informations avec docker info:
On a plus d'informations avec docker info:
<div style="background:#eeeeee; border:1px solid #cccccc; padding:5px 10px">
<div style="background:#eeeeee; border:1px solid #cccccc; padding:5px 10px">
justine@Justine-pc:~$ docker info<br/> Containers: 0<br/> &nbsp;Running: 0<br/> &nbsp;Paused: 0<br/> &nbsp;Stopped: 0<br/> Images: 1<br/> Server Version: 18.09.0<br/> Storage Driver: overlay2<br/> &nbsp;Backing Filesystem: extfs<br/> &nbsp;Supports d_type: true<br/> &nbsp;Native Overlay Diff: true<br/> Logging Driver: json-file<br/> Cgroup Driver: cgroupfs<br/> Plugins:<br/> &nbsp;Volume: local<br/> &nbsp;Network: bridge host macvlan null overlay<br/> &nbsp;Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog<br/> Swarm: inactive<br/> Runtimes: runc<br/> Default Runtime: runc<br/> Init Binary: docker-init<br/> containerd version: d6de12e2f362cb9dc49ad957911996d3de59b338<br/> runc version: 4fc53a81fb7c994640722ac585fa9ca548971871<br/> init version: fec3683<br/> Security Options:<br/> &nbsp;apparmor<br/> &nbsp;seccomp<br/> &nbsp; Profile: default<br/> Kernel Version: 4.18.0-10-generic<br/> Operating System: Ubuntu 18.10<br/> OSType: linux<br/> Architecture: x86_64<br/> CPUs: 8<br/> Total Memory: 15.59GiB<br/> Name: ***<br/> ID: EN3D:SYGK:2WYA:TZM5:MHRP:FBOH:GQVD:VFKW:SDG6:V3FW:XSKK:5MAI<br/> Docker Root Dir: /var/lib/docker<br/> Debug Mode (client): false<br/> Debug Mode (server): false<br/> Registry: https://index.docker.io/v1/<br/> Labels:<br/> Experimental: false<br/> Insecure Registries:<br/> &nbsp;127.0.0.0/8<br/> Live Restore Enabled: false<br/> Product License: Community Engine
justine@Justine-pc:~$ docker info<br/> Containers: 0<br/> &nbsp;Running: 0<br/> &nbsp;Paused: 0<br/> &nbsp;Stopped: 0<br/> Images: 1<br/> Server Version: 18.09.0<br/> Storage Driver: overlay2<br/> &nbsp;Backing Filesystem: extfs<br/> &nbsp;Supports d_type: true<br/> &nbsp;Native Overlay Diff: true<br/> Logging Driver: json-file<br/> Cgroup Driver: cgroupfs<br/> Plugins:<br/> &nbsp;Volume: local<br/> &nbsp;Network: bridge host macvlan null overlay<br/> &nbsp;Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog<br/> Swarm: inactive<br/> Runtimes: runc<br/> Default Runtime: runc<br/> Init Binary: docker-init<br/> containerd version: d6de12e2f362cb9dc49ad957911996d3de59b338<br/> runc version: 4fc53a81fb7c994640722ac585fa9ca548971871<br/> init version: fec3683<br/> Security Options:<br/> &nbsp;apparmor<br/> &nbsp;seccomp<br/> &nbsp; Profile: default<br/> Kernel Version: 4.18.0-10-generic<br/> Operating System: Ubuntu 18.10<br/> OSType: linux<br/> Architecture: x86_64<br/> CPUs: 8<br/> Total Memory: 15.59GiB<br/> Name: ***<br/> ID: EN3D:SYGK:2WYA:TZM5:MHRP:FBOH:GQVD:VFKW:SDG6:V3FW:XSKK:5MAI<br/> Docker Root Dir: /var/lib/docker<br/> Debug Mode (client): false<br/> Debug Mode (server): false<br/> Registry: [https://index.docker.io/v1/ https://index.docker.io/v1/]<br/> Labels:<br/> Experimental: false<br/> Insecure Registries:<br/> &nbsp;127.0.0.0/8<br/> Live Restore Enabled: false<br/> Product License: Community Engine


WARNING: No swap limit support
WARNING: No swap limit support
Ligne 35 : Ligne 37 :
<code>sudo adduser user docker</code>
<code>sudo adduser user docker</code>


&nbsp;


== Tester l'installation de Docker ==
== Tester l'installation de Docker ==
Ligne 62 : Ligne 65 :
Récapitulatif des commandes issu de la documentation Docker <code>:</code>
Récapitulatif des commandes issu de la documentation Docker <code>:</code>
<div style="background:#eeeeee;  border:1px solid #cccccc;  padding:5px 10px"><div class="language-shell highlighter-rouge"><div class="highlight">
<div style="background:#eeeeee;  border:1px solid #cccccc;  padding:5px 10px"><div class="language-shell highlighter-rouge"><div class="highlight">
## List Docker CLI commands<br/> docker<br/> docker container --help
List Docker CLI commands<br/> docker<br/> docker container --help
 
&nbsp;
 
Display Docker version and info<br/> docker --version<br/> docker version<br/> docker info
 
&nbsp;
 
Execute Docker image<br/> docker run hello-world


## Display Docker version and info<br/> docker --version<br/> docker version<br/> docker info
&nbsp;


## Execute Docker image<br/> docker run hello-world
List Docker images<br/> docker image ls


## List Docker images<br/> docker image ls
&nbsp;


## List Docker containers (running, all, all in quiet mode)<br/> docker container ls<br/> docker container ls --all<br/> docker container ls -aq
List Docker containers (running, all, all in quiet mode)<br/> docker container ls<br/> docker container ls --all<br/> docker container ls -aq


&nbsp;
&nbsp;
</div> </div> </div>  
</div> </div> </div>  
&nbsp;
&nbsp;

Version du 14 novembre 2018 à 20:04

Les notes de cettes pages sont prises à partir de la documentation de docker : https://docs.docker.com/get-started/  

Présentation de Docker

Docker est une plateforme qui permet de développer, déployer et faire tourner des applications en conteneurs. L'usage de conteneur s'appelle la conteneurisation. Les conteneurs sont:

  • Flexibles : Tout peut être conteneurisé
  • Légers
  • Interchangeables
  • Portables
  • Scalables
  • Empilables

Un conteneur est lancé en faisant tourner une image : une image est un exécutable qui inclut tout ce dont a besoin le programme, et le conteneur est l'environnement d'exécution qui permet à cette image de fonctionner. Une fois lancé le conteneur est un processus utilisateur, que l'on peut lister avec docker ps. Les conteneurs partagent entre eux les ressources système et le noyau Linux. 

À la différence d'une VM, un conteneur peut tourner nativement sur n'importe quelle machine Linux; une même machine Linux peut utiliser plusieurs conteneurs, cette technologie est plus économe que les VM.

Préparer l'environnement Docker

On va commencer par installer Docker.

https://docs.docker.com/install/

Le versioning fonctionne sur le modèle : Année.Mois.Patch

Une fois installé, on peut tester avec docker --version.

On a plus d'informations avec docker info:

justine@Justine-pc:~$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 18.09.0
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d6de12e2f362cb9dc49ad957911996d3de59b338
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.18.0-10-generic
Operating System: Ubuntu 18.10
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.59GiB
Name: ***
ID: EN3D:SYGK:2WYA:TZM5:MHRP:FBOH:GQVD:VFKW:SDG6:V3FW:XSKK:5MAI
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

WARNING: No swap limit support

On peut ensuite ajouter son utilisateur au groupe docker:

sudo adduser user docker

 

Tester l'installation de Docker

Le test le plus simple consiste à faire tourner l'image hello-world :

justine@Justine-pc:~$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

 

Hello-world est une image simple qui permet de valider l'installation.

On peut lister les images télechargées avec docker image ls

...et lister les conteneurs avec docker container ls --all

Récapitulatif des commandes issu de la documentation Docker :

List Docker CLI commands
docker
docker container --help

 

Display Docker version and info
docker --version
docker version
docker info

 

Execute Docker image
docker run hello-world

 

List Docker images
docker image ls

 

List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq