labs:docker-lab-di2-centos-from-deb
Table of Contents
Docker: Lab DI2 Image de base Centos sous Ubuntu
Objet | Création d'une image de base CentOS |
---|---|
Niveau requis | débutant, avisé |
Débutant, à savoir | |
Suivi | :DRAFT: |
moby/contrib/mkimage/rinse
#!/usr/bin/env bash set -e rootfsDir="$1" shift # specifying --arch below is safe because "$@" can override it and the "latest" one wins :) ( set -x rinse --directory "$rootfsDir" --arch amd64 "$@" ) "$(dirname "$BASH_SOURCE")/.febootstrap-minimize" "$rootfsDir" if [ -d "$rootfsDir/etc/sysconfig" ]; then # allow networking init scripts inside the container to work without extra steps echo 'NETWORKING=yes' > "$rootfsDir/etc/sysconfig/network" fi # make sure we're fully up-to-date, too ( set -x chroot "$rootfsDir" yum update -y )
moby/contrib/mkimage/.febootstrap-minimize
La commande unix febootstrap-minimise
minimise un système de fichiers créé par febootstrap
, ce qui signifie que les fichiers inutiles sont supprimés de l'image.
Si aucune option n'est donnée, la valeur par défaut est de minimiser autant que possible l'image, ce qui signifie, par exemple, que les paramètres régionaux sont supprimés de sorte que l'image ne sera utilisable qu'en anglais américain, sans documentation ni pages de manuel. L'image ne fonctionnera que dans un fuseau horaire UTC. Pour conserver ces paramètre on peut spécifier les options telles que:
febootstrap-minimize --keep-zoneinfo --keep-rpmdb --keep-services "$target"
- –keep-locales: Conserve le support des paramètres régionaux.
- –keep-zoneinfo: Conserve tous les fuseaux horaires
- –keep-rpmdb: Conserve les bases de données des packages RPM et YUM.
- –keep-services: Conserve le fichier
/etc/services
. Si on le supprime, ce fichier est remplacé par un fichier très minime qui répertorie uniquement les services les plus courants. Pour les services moins courants, on devra s'y référer par numéro de port plutôt que par nom.
Dans l'exemple on préfère utiliser un script .febootstrap-minimize
construit pour remplacer cette commande.
#!/usr/bin/env bash set -e rootfsDir="$1" shift ( cd "$rootfsDir" # effectively: febootstrap-minimize --keep-zoneinfo --keep-rpmdb --keep-services "$target" # locales rm -rf usr/{{lib,share}/locale,{lib,lib64}/gconv,bin/localedef,sbin/build-locale-archive} # docs and man pages rm -rf usr/share/{man,doc,info,gnome/help} # cracklib rm -rf usr/share/cracklib # i18n rm -rf usr/share/i18n # yum cache rm -rf var/cache/yum mkdir -p --mode=0755 var/cache/yum # sln rm -rf sbin/sln # ldconfig #rm -rf sbin/ldconfig rm -rf etc/ld.so.cache var/cache/ldconfig mkdir -p --mode=0755 var/cache/ldconfig )
labs/docker-lab-di2-centos-from-deb.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1