Changements récents - Rechercher:

Espace Wiki ∂'Alembert
Documentation générale


Espace Guide de survie du SysAdmin
Documentation technique


Espace Guide de survie du Développeur
Pour les développeurs


Espace Institut ∂’Alembert
L'institut


Le Site
À propos du Site
Liste complète des Pages


Aide PmWikiFr

Help PmWiki

GSSA /

Docker - Utilisation

Page mise à jour le 20/09/2016 14:00

Vous êtes dans un espace restreint en écriture.

<< Docker Compose + Docker Registry | Docker | Docker - Création d'Images >>

docker est une commande permettant de gérer les conteneurs.

Information de bases

  • version:
$ docker version
Client:
Version: 1.8.2
API version: 1.20
Go version: go1.4.2
Git commit: 0a8c2e3
Built: Thu Sep 10 19:19:00 UTC 2015
OS/Arch: linux/amd64

Server:
Version: 1.8.2
API version: 1.20
Go version: go1.4.2
Git commit: 0a8c2e3
Built: Thu Sep 10 19:19:00 UTC 2015
OS/Arch: linux/amd64
  • liste des images:
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
rainloop_core latest 5c0959a4031b 5 hours ago 518.9 MB
pmwiki_core latest ec2bbba1d18a 25 hours ago 366.9 MB
nginx 1.6.2 1744aaf6efdc 25 hours ago 323.9 MB
nginx latest 1744aaf6efdc 25 hours ago 323.9 MB
nginx-php5-ldap latest b20cdfe20707 26 hours ago 366.9 MB
jessie latest f447092c1e85 2 days ago 210.7 MB
wheezy latest ee75885d1bdf 2 days ago 164.3 MB
  • liste des conteneurs:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6086e765014e rainloop_core "/run.sh" 5 hours ago Up 5 hours 0.0.0.0:8006->80/tcp rainloop_core_1
6cb5897d4265 pmwiki_core "/run.sh" 25 hours ago Up 25 hours 0.0.0.0:8003->80/tcp pmwiki_core_1
7153caf8eeb4 registry:2 "/bin/registry /etc/d" 4 weeks ago Up 4 weeks 0.0.0.0:5000->5000/tcp registry_registry_1
  • aide en ligne
$ docker help

Arbres des images : dockviz

Avant la version ??, il existait la commande docker images --tree permettant de voir l'arbre de dépendance des images. Cette option a disparu. Pour la remplacer il existe maintenant une commande, sous forme d'image docker, suivante: docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock nate/dockviz[1]

Pour l'utiliser aisément, je crée un alias bash:

alias dockviz='docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock nate/dockviz'
Puis, il suffit de s'en servir comme une commande classique:
$ dockviz --help
Usage:
dockviz [OPTIONS] <containers | help | images>

[...]

$ dockviz images --help
Usage:
dockviz [OPTIONS] images [images-OPTIONS]
[...]

  • arbre des images:
    dockviz images -t
    dockviz images -t
    ├─c036ca3f31a9 Virtual Size: 6.1 MB
    │ └─e5a44dfb4516 Virtual Size: 6.1 MB
    │ └─8ad20030017b Virtual Size: 6.1 MB Tags: nate/dockviz:latest
    ├─7245b8b1fc96 Virtual Size: 226.2 MB Tags: debootstrap/wheezy:2015-11-02, debootstrap/wheezy:latest
    ├─c0567d787977 Virtual Size: 164.3 MB Tags: debootstrap/wheezy-minbase:latest, debootstrap/wheezy-minbase:2015-10-27
    │ └─60849ee7b4c2 Virtual Size: 164.3 MB
    │ └─e2701116cfd4 Virtual Size: 164.3 MB
    │ └─5aa02cfc0f0b Virtual Size: 164.3 MB Tags: wheezy:2015-11-02, wheezy:latest, wheezy-minbase:2015-10-27, wheezy-minbase:latest
    │ ├─9e16b8ae31ed Virtual Size: 329.9 MB
    [...]
  • arbre des images nommées:
    dockviz images -tl
    ├─c036ca3f31a9 Virtual Size: 6.1 MB
    │ └─8ad20030017b Virtual Size: 6.1 MB Tags: nate/dockviz:latest
    ├─7245b8b1fc96 Virtual Size: 226.2 MB Tags: debootstrap/wheezy:latest, debootstrap/wheezy:2015-11-02
    ├─c0567d787977 Virtual Size: 164.3 MB Tags: debootstrap/wheezy-minbase:latest, debootstrap/wheezy-minbase:2015-10-27
    │ └─5aa02cfc0f0b Virtual Size: 164.3 MB Tags: wheezy:2015-11-02, wheezy:latest, wheezy-minbase:2015-10-27, wheezy-minbase:latest
    │ ├─301d797b2063 Virtual Size: 329.9 MB Tags: apache2:2.2.22, apache2:latest
    │ └─4b36089d48bf Virtual Size: 338.7 MB
    │ ├─42e554fa6321 Virtual Size: 338.7 MB Tags: nginx:1.6.2, nginx:latest
    │ │ ├─c908ac5498ee Virtual Size: 603.6 MB Tags: munin:2.0.19, munin:latest
    │ │ │ └─230cf494a5d2 Virtual Size: 603.6 MB Tags: muninserver_core:latest
    │ │ └─db444e7879d7 Virtual Size: 381.7 MB Tags: nginx-php5-ldap:1.6.2_5.4.4, nginx-php5-ldap:latest
    │ │ └─08713a6e7e1d Virtual Size: 587.1 MB Tags: rainloop_core:latest
    │ └─a99010e7a278 Virtual Size: 338.7 MB
    │ ├─a9fa565721c2 Virtual Size: 338.7 MB
    │ │ ├─24def109b021 Virtual Size: 548.7 MB
    │ │ │ └─5fee803390d1 Virtual Size: 603.6 MB
    │ │ └─bd259a35075c Virtual Size: 513.8 MB
    │ │ ├─f0ea3946576c Virtual Size: 513.8 MB
    │ │ │ └─687eaf5b09e5 Virtual Size: 513.8 MB
    │ │ │ └─70ce80a7cb71 Virtual Size: 513.8 MB
    │ │ └─29f9803b4da2 Virtual Size: 513.8 MB
    │ │ └─13cda998eb59 Virtual Size: 513.8 MB
    │ └─fd53ca9c1df5 Virtual Size: 381.7 MB Tags: pmwiki_core:latest
    ├─20f52d06d206 Virtual Size: 226.2 MB Tags: debootstrap/wheezy:2015-10-27
    ├─d576075bcbde Virtual Size: 210.7 MB Tags: debootstrap/jessie-minbase:2015-10-20
    │ └─f447092c1e85 Virtual Size: 210.7 MB Tags: jessie:latest, jessie-minbase:2015-10-20
    ├─c06dd82849b9 Virtual Size: 164.3 MB Tags: debootstrap/wheezy-minbase:2015-10-20
    │ └─ee75885d1bdf Virtual Size: 164.3 MB Tags: wheezy-minbase:2015-10-20
    │ └─b20cdfe20707 Virtual Size: 366.9 MB
    │ └─ec2bbba1d18a Virtual Size: 366.9 MB Tags: pmwiki_wiki:latest
    ├─4b24b552d4ed Virtual Size: 282.8 MB Tags: debootstrap/jessie:2015-10-20
    ├─48e180393688 Virtual Size: 226.2 MB Tags: debootstrap/wheezy:2015-10-20
    ├─d3a1f33e8a5a Virtual Size: 188.2 MB
    │ └─1e847b14150e Virtual Size: 220.6 MB Tags: localhost:5000/registry:2, registry:2
    ├─68b064f781f5 Virtual Size: 0.0 B
    │ └─c0e56eeefd42 Virtual Size: 22.8 MB Tags: google/cadvisor:latest
    └─1d712d0b2b7a Virtual Size: 0.0 B
    └─6245e5b140dc Virtual Size: 4.8 MB Tags: progrium/busybox:latest
    └─fc90681ef401 Virtual Size: 7.9 MB Tags: bb-nginx:1.6.2, bb-nginx:latest
  • arbre des images nommées ou pas avec dot ...
    • ... dans un fichier
      dockviz images --dot -l | dot -Tpng > docker-images-named.png
    • ... ou à l'écran (X11)
      dockviz images --dot -l | dot -Tx11

arbre des images

arbre des images nommées


Lancement d'un conteneur

  • lancement du shell dans un conteneur, en mode interactif:
$ docker run -t -i --rm debootstrap/wheezy /bin/bash

Avec les options:

 -t : allouer un ``TTY``
 -i : ouvrir ``stdin``
 --rm : detruire le conteneur à la fin de l'execution 

et le paramètres:

 debootstrap/wheezy : nom de l'image de base
 /bin/bash : binaire démarré dans l'image
  • lancement d'un conteneur, en tache de fond:
$ docker run -d debootstrap/wheezy [ /path/to/init ]

Avec les options:

 -d : lancement en mode détaché (*background*)

Lancement automatique de conteneurs

Par défaut, les conteneurs ne sont pas démarré au lancement de Docker.

Pour voir cela, il faut faire un

$ docker inspect rainloop_core_1
[...]
"RestartPolicy": {
"Name": "",
"MaximumRetryCount": 0
},
[...]
$ docker inspect -f "{{ .HostConfig.RestartPolicy }}" rainloop_core_1
{ 0}

Pour activer le re-démarrage automatique, il faut

  • ajouter dans docker-compose.yml le champs restart:
    core:
        build
    : .
        ports
    :
           - "8006:80"
        restart
    : always
  • redémmarer le conteneur:
    $ docker-compose up -d
    Recreating pmwiki_core_1...
  • et voir le résultat
    $ docker inspect -f "{{ .HostConfig.RestartPolicy }}" rainloop_core_1
    {always 0}

Connexion à un conteneur

la commande docker attach est très complexe à maîtriser [2] [3] et en gros detruit le stdin après usage.

Trucs et Astuces

supprimer les images non taggées

docker rmi $(docker images | grep "^<none>" | awk '{print $3}')

supprimer les conteneurs en status Exited ou Created

docker rm $(docker ps -a | egrep 'Exit|Created' | awk '{print $1}')

Voir aussi

À propos du site Licence Creative Commons Cooked with love in 2014-2023 by pcht
Page mise à jour le 20/09/2016 14:00