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 - Création d'Images

Page mise à jour le 20/09/2016 13:40

Vous êtes dans un espace restreint en écriture.

<< Docker - Utilisation | Docker | Docker - HA (À tester) >>

Toutes mes expérimentations sont faites sous Ubuntu 14.04 LTS (:numbered-sections format=0.A.1.a:)

Processus

Ici, il s'agit de re-créer l'ensemble des images Docker sans utiliser d'images externes, en particulier venant du hub Docker

Les étapes sont:

  • création d'une images de base, Debian ou Ubuntu avec debootstrap.
  • adaptation de l'image pour le contexte Docker
  • création des images des briques (daemon) de bases (nginx, bind, apache2, varnish, mysql ...) à partir des images de distributions
  • lancement des services effectivement exécutes sur les serveurs Docker (wiki, proxy HTTP[S], sites web persos ...)

Images de Distributions

Les sources sont dans /docker/images/distrib
Le script de base est un Makefile

Cette partie se fait en 3 étapes:

  1. création d'une image de base dans un fichier tar
 $ debootstrap wheezy wheezy
 [... long ...]
 $ cd wheezy && tar czf ../wheezy.tgz .
 $ rm -rf wheezy
  1. importation du ficher tar dans Docker
 $ docker import - debootstrap/wheezy < wheezy.tgz
 $ docker images
 debootstrap/jessie           latest              4b24b552d4ed        20 hours ago        282.8 MB
 debootstrap/wheezy           latest              48e180393688        20 hours ago        226.2 MB
 [...]
  1. modification de l'image pour les besoins de Docker

Ajout d'un fichier wheezy.dir/Dockerfile avec le minimun comme:

FROM debootstrap/wheezy-minbase
ENV DEBIAN_FRONTEND noninteractive

Et création de l'image prete pour l'étape suivante:

 $ docker build -t wheezy wheezy.dir
 $ docker images
 jessie                       latest              4b24b552d4ed        18 hours ago        282.8 MB
 wheezy                       latest              ee75885d1bdf        18 hours ago        226.2 MB
 debootstrap/jessie           latest              d576075bcbde        20 hours ago        282.8 MB
 debootstrap/wheezy           latest              48e180393688        20 hours ago        226.2 MB

Optimisations possibles

De base la taille des images wheezy et jessie sont de 226 et 282 Mo. Et donc chaque conteneurs, pour chaque service, sera au moins de cette taille.

Idées pour réduire la taille des images de base:

  • À l'étape 1, utiliter l'option --variant=minibase de debootstrap
  • À l'étape 1, utiliser une autre distribution, comme busybox
  • À l'étape 3, faire le ménage dans l'image de base a coup de apt-get purge gnupg perl-base e2fsprogs login passwd util-linux grep findutils ...

Images de briques

Les sources sont dans /docker/images/apps
Le script de base est un Makefile

Cette partie est obsolète car prise en charge pas docker-compose

Les Services

Les sources sont dans /docker/compose
Le script de base est docker-compose

Gestion des images

voir le graphe des images avec dockviz:

  • definir un alias
    alias dockviz='docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock nate/dockviz'
  • voir le graphe textuel des images avec un nom:
    $ dockviz images -t -l
  • voir le graphe graphique des images avec un nom:
    $ dockviz images -d -l | dot -Tx11
À propos du site Licence Creative Commons Cooked with love in 2014-2023 by pcht
Page mise à jour le 20/09/2016 13:40