informatique:aides:docker

Ceci est une ancienne révision du document !


Docker

  • Dockerfile :
    • ADD –chown=user:group my-backup.tar.gz /var/www : chown n'a aucun effet sur les fichiers et dossiers extrait d'un fichier compressé et c'est normal…
    • Dans un Dockerfile appelé depuis un fichier docker-compose.yml où des volumes nommées sont créés, la commande chown n'aura aucun effet car les volumes sont créés préalablement…
  • Pour la restauration, créer un fichier docker-compose-restore.yml semble être une solution intéressante. À lancer avec docker-compose -f docker-compose-restore.yml up
  • Exemple de méthode fonctionnelle pour sauvegarder & restaurer : https://loomchild.net/2017/03/26/backup-restore-docker-named-volumes/
    • Exemple de commande :
      docker run -it --rm -v bookmarksclapasorg_data-shaarli-storage:/var/www/shaarli/data -v ${PWD}/backup/:/backup alpine sh -c "rm -rf /var/www/shaarli/data/* /var/www/shaarli/data/..?* /var/www/shaarli/data/.[!.]* ; tar -C /var/www/shaarli/data/ -xjf /backup/2019-10-29_shaarli_data_backup.tar.bz2 ; chown -R 100: /var/www/shaarli/data/"
    • Utilisation d'une image Docker correspondant à l'article : https://github.com/loomchild/volume-backup
  • Solution CampToCamp → Bivac : https://hub.docker.com/r/camptocamp/bivac
  • Solution embarqué dans un container (cron, backup) : https://hub.docker.com/r/futurice/docker-volume-backup
  • Exemple avec une image contenant Shaarli :
    • Toutes les données sont stockées dans : /usr/share/nginx/shaarli/data
    • Récupérer le nom du container contenant les données avec la commande ps (ex.: shaarli_data_1) : docker ps
    • Utiliser ensuite la commande cp pour copier les données : docker cp shaarli_data_1:/usr/share/nginx/shaarli/data/ ~/backup_dir
  • Pour restaurer les données :
    • Récupérer le nom du container (ex.: shaarli_data_1) : docker ps
    • Utiliser ensuite la commande cp pour restaurer les données : docker cp ~/backup_dir shaarli_data_1:/usr/share/nginx/shaarli/data/
  • Se placer dans le dossier suivant : cd /home/admin/yilgarn/boomarks.clapas.org
  • Créer un dossier backup : mkdir backup
  • Sauvegarde du dossier /data :
    docker run --rm --volumes-from bookmarks.clapas.org_shaarli -v $(pwd)/backup:/backup bradynpoulsen/archive-utils /bin/bash -c "tar -cjf /backup/$(date +"%Y-%m-%d")_shaarli_data_backup.tar.bz2 /var/www/shaarli/data ; chown 1001:1001 /backup/*.bz2" 
  • Vérifier sur l'hôte la présence du nouveau fichier .tar.bz2 dans le dossier ./backup/
  • Se placer dans le dossier suivant : cd /home/admin/yilgarn/memos.clapas.org
  • Créer un dossier backup : mkdir backup
  • Créer successivement les sauvegardes avec les commandes :
    docker run --rm --volumes-from memos.clapas.org_dokuwiki -v $(pwd)/backup:/backup debian:buster tar cvf /backup/2020-06-04_data.tar /var/www/html/data
    docker run --rm --volumes-from memos.clapas.org_dokuwiki -v $(pwd)/backup:/backup debian:buster tar cvf /backup/2020-06-04_conf.tar /var/www/html/conf
    docker run --rm --volumes-from memos.clapas.org_dokuwiki -v $(pwd)/backup:/backup debian:buster tar cvf /backup/2020-06-04_plugins.tar /var/www/html/lib/plugins
    docker run --rm --volumes-from memos.clapas.org_dokuwiki -v $(pwd)/backup:/backup debian:buster tar cvf /backup/2020-06-04_tpl.tar /var/www/html/lib/tpl
  • Passer en root et donner les droits à admin sur les fichiers : su ; chown admin: backup/*.tar
  • Se placer dans le dossier suivant : cd /home/admin/yilgarn/wallabag.clapas.org
  • Créer un dossier backup si nécessaire : mkdir backup
  • Lancer successivement les sauvegardes avec les commandes :
    docker-compose down
    docker run --rm --volumes-from wallabag.clapas.org -v $(pwd)/backup:/backup bradynpoulsen/archive-utils /bin/bash -c "tar -cjf /backup/2020-06-05_wallabag_data_backup.tar.bz2 /var/www/wallabag/data ; chown 1001:1001 /backup/*.bz2"
    docker run --rm --volumes-from wallabag.clapas.org -v $(pwd)/backup:/backup bradynpoulsen/archive-utils /bin/bash -c "tar -cjf /backup/2020-06-05_wallabag_images_backup.tar.bz2 /var/www/wallabag/web/assets/images ; chown 1001:1001 /backup/*.bz2"
  • Notes : l'image bradynpoulsen/archive-utils contient le binaire bzip2 non disponible dans les images Debian de base…
  • Se placer dans le dossier suivant : cd /home/admin/yilgarn/pwd.clapas.org
  • Créer un dossier backup si nécessaire : mkdir backup
  • Lancer successivement les sauvegardes avec les commandes :
    docker exec pwd-clapas-database sh -c 'exec mysqldump --databases pwd -uroot -p"$MYSQL_ROOT_PASSWORD"' > "backup/$(date +"%Y-%m-%d")_db_backup.sql"
    docker run --rm --volumes-from pwd-clapas-passbolt -v $(pwd)/backup:/backup bradynpoulsen/archive-utils /bin/bash -c "tar -cjf /backup/$(date +"%Y-%m-%d")_gpg_backup.tar.bz2 /var/www/passbolt/config/gpg ; chown 1001:1001 /backup/*.bz2"
    docker run --rm --volumes-from pwd-clapas-passbolt -v $(pwd)/backup:/backup bradynpoulsen/archive-utils /bin/bash -c "tar -cjf /backup/$(date +"%Y-%m-%d")_img_backup.tar.bz2 /var/www/passbolt/webroot/img/public ; chown 1001:1001 /backup/*.bz2"
  • Notes : la sauvegarde de la base de données Mariadb et des dossiers se fait avec le container actif.

ATTENTION : après chaque redémarrage du docker, il est nécessaire de relancer les commandes ci-dessous :

  • Se connecter au container : docker exec -it pwd-clapas-passbolt /bin/bash
  • Créer le dossier : mkdir -m=770 /etc/passbolt/jwt
  • Donner les bons droits : chown www-data:www-data /etc/passbolt/jwt/
  • Créer les clés JWT : su -s /bin/bash -c “/usr/share/php/passbolt/bin/cake passbolt create_jwt_keys” www-data
  • Vérifier que tout est ok : bin/cake passbolt healthcheck
  • Copier un fichier dans un volume nommé depuis l'hôte :
    • Se placer dans le dossier contenant les fichiers à copier sur l'hôte : cd <mon-dossier>
    • Copier le fichier : docker run --rm -v $PWD:/src -v my-volume:/dest -u user:group -w /src busybox cp /src/my-file.txt /dest/my-file.txt
    • Exemple : docker run --rm -v $PWD:/src -v amandine-cuircom_wordpress-storage:/dest -u www-data:www-data -w /src busybox cp /src/favicon.ico /dest/favicon.ico
  • informatique/aides/docker.1640699604.txt.gz
  • Dernière modification : 2021/12/28 13:53
  • de jpmilcent