Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/12/2023, à 02:44

krodelabestiole

docker : pour ou contre ?

au sujet de yunohost et casaOS

bruno a écrit :

je ne crois pas que Yunohiost utilise Docker et ce n'est pas plu mal.

krodelabestiole a écrit :

c'est un critère décisif

O_20_100_O a écrit :

L'utilisation de Docker donne lieu à débat. Comme vous avez une opinion bien arrêtée et très certainement basée sur de solides  arguments, pouvez-vous nous expliquer cela s'il vous plaît ? Éventuellement dans un nouveau sujet.

ça risque d'être une histoire un peu similaire à snap / flatpak : pour ou contre ?

je pense que docker et la containérisation (podman, lxc, distrobox, etc.) en général sont l'avenir (de toute façon - et aussi le présent d'ailleurs) et que c'est l'idéal pour tester et déployer rapidement des technologies. ça uniformise les pratiques et permet de dissocier les services des ressources (pour mieux profiter de chaque chose indépendamment).
on y perd un côté éducatif et exploitation stricte des ressources (en particulier optimisation de l'espace de stockage : pas de mutualisation des librairies), on se prend un niveau d'abstraction et de complexité supplémentaire, mais dans la pratique l'administrateur y gagne en simplicité, en praticité, en sécurité par défaut et surtout en temps de déploiement, de migration, de distribution, etc.
au final docker et autres permettent de faire des choses quasi impensables il y a 20 ans (k8s est un exemple), et offrent une souplesse, des possibilités d'évolution et se sont imposés comme standards aussi bien chez les sysadmins des plus grandes structures que dans les communautés des tinkers (bricoleurs) qui proposent des services à diverses échelles, que ce soit pour eux, pour leurs familles et amis, ou pour des millions d'utilisateurs.
cette standardisation permet en outre de partager ses travaux, et offre la possibilité de déployer des environnements extrêmement complexes en 3 lignes de commande absolument n'importe où (c'est ce que j'ai fait pour un environnement de dev d'ubuntu-fr, avant ça c'était de nombreuses heures rien que pour déployer le forum localement, le tout bien emberlificoté avec les paquets du système, la nécessité de déployer les fichiers statiques sur un second domaine, ect., un truc aberrant, rien que pour commencer à bosser sur le CSS du forum par exemple).
bref c'est utilisé partout, tout le temps, en particulier quand il y a de l'argent impliqué (autrement dit dans les milieux professionnels) et qu'on doit absolument éviter de perdre du temps. tant pis pour ce qu'on n'a pas l'occasion d'apprendre; ça ouvre un nouveau champs des possibles.
docker suit la direction que l'informatique a toujours pris dans son acception majoritaire. ça n'empêche que dans certains domaines l'assembleur soit toujours ultra pertinent (voir les librairies VLC) et qu'il puisse parfois être utile de comprendre le fonctionnement de bas niveau de divers serveurs web dans certains contextes. je parle bien de majorité, il y a des exceptions.
on parlait ici de monter un serveur auto-hebergé, dans le but général de déployer rapidement divers outils à usage privé ou semi-privé, de les tester, voir ce dont on a besoin etc. (les anglophones parlent de homelabs). pour moi c'est plié, la question a sa réponse et elle méritait à peine d'être posée (pour peu qu'on comprenne le fonctionnement de la techno on a la réponse).

Hors ligne

#2 Le 28/12/2023, à 09:57

bruno

Re : docker : pour ou contre ?

Salut,

Je vais faire une réponse courte et peu argumentée.

Il n'y a pas a être pour ou contre. Il faut simplement utiliser cette technologie à bon escient en étant conscient des risques de sécurité et des écueils et ne pas le proposer comme solution à tout problème.

Attention donc à la provenance des images si on ne les construit pas soi-même. Attention à ce qu’elles soient suffisamment à jour pour ne pas contenir de faille de sécurité connues (ou pire des logiciels malveillants comme c'est déjà arrivé par le passé).
Attention à la configuration et aux paramètres de lancement des conteneurs (on peut s'échapper du'un conteneur et prendre le contrôle de l'hôte ou d'autres conteneurs).
Attention donc d'avoir les compétences nécessaires pour maintenir un tel système à jour.
Attention de ne pas céder à l'effet de mode ou penser que tout ressemble à un clou parce que l'on a trouvé un marteau.
Attention de ne pas croire que l'on élimine la complexité d'un service en la masquant sous diverses couches d'abstraction (maintenir une pile LAMP ou un serveur de courriel est tout aussi complexe) simplement parce que le premier déploiement semble plus rapide.

krodelabestiole a écrit :

dans le but général de déployer rapidement divers outils à usage privé ou semi-privé, de les tester, voir ce dont on a besoin etc

Dans ce cas précis, sur un réseau privé ou suffisamment filtré, Ok.

#3 Le 28/12/2023, à 11:41

diesel

Re : docker : pour ou contre ?

Je ne suis pas contre ces outils "par principe".

Cependant, sur une distribution (ou un windows ou un macOS ou autre), il y a une équipe de maintenance qui veille à maintenir à jour le système et toutes les bibliothèques partagées au fil des découvertes de bugs et vulnérabilité et des corrections associées. Et elle met aussi à jour les applications qui dépendent de ces bibliothèques en liaison avec les équipes de maintenance des applications.

Tout ceci nécessite du temps et donc de l'argent et on peut facilement comprendre que certains aimeraient bien en faire l'économie. "j'ai développé une application en version x.x.x qui fonctionne parfaitement avec les bibliothèques y.y.y et je n'ai pas envie de m'y remettre chaque fois qu'une bibliothèque passe en version y.y.z".

Lorsqu'on installe une application dans un conteneur, elle est fournie avec toutes ses bibliothèques dans la version qui va avec et elle continue à fonctionner de la même manière même si le système fait évoluer les bibliothèques partagées.

Sauf que..., si des failles de sécurité sont découvertes dans les bibliothèques qu'une application en conteneur utilise et que le développeur ne veut pas faire l'effort de mettre à jour son application, celle-ci pourra être compromise même si le système est mis à jour, lui ; et si l'application est, par exemple, un navigateur dans lequel on a mémorisé des mots de passe, je vous laisse imaginer les conséquences.

Et l'être humain étant par nature paresseux...

Par contre, pour du développement ou du test ; oui.

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#4 Le 28/12/2023, à 12:45

krodelabestiole

Re : docker : pour ou contre ?

diesel a écrit :

Sauf que..., si des failles de sécurité sont découvertes dans les bibliothèques qu'une application en conteneur utilise et que le développeur ne veut pas faire l'effort de mettre à jour son application, celle-ci pourra être compromise même si le système est mis à jour, lui ;

le problème est le même avec n'importe quelle application présentant des failles de sécurité connues. avec docker on a au moins un niveau de sécurité supplémentaire du fait du confinement en container.


diesel a écrit :

si l'application est, par exemple, un navigateur dans lequel on a mémorisé des mots de passe, je vous laisse imaginer les conséquences.

un navigateur en docker ? o_Ô


tu utilises ou a déjà utilisé docker ? c'est pas vraiment un moyen de distribuer des logiciels, contrairement à flatpak ou snap (je les ai cités mais on ne parle pas de ça)...
c'est (peut-être principalement) un moyen de simplifier le portage d'environnements. associé à traefik c'est un moyen incomparablement pratique de déployer et gérer de nombreux services disparates dans leurs technologies sur une machine unique.
à ce titre ça n'a rien à voir avec snap ou flatpak : ce n'est pas seulement un bête moyen d'embarquer des dépendances / librairies.

Hors ligne

#5 Le 28/12/2023, à 15:44

Nuliel

Re : docker : pour ou contre ?

Hello,
Pour info il existe des outils pour détecter des dépendances vulnérables dans les conteneurs (trivy par exemple)
J'utilise un peu docker (pour du dev et de la sécurité), et le fait de pas pourrir son système en installant la lib bidule en version 2, la lib truc en version 4, ... perso je trouve ça pratique. Et sur des projets open source, quand le README dit: "voilà un docker avec tout bien configuré", c'est clairement plus simple comparé au README qui va dire "compiler et installer la lib truc en v2" avec un lien vers la lib sur github. Bref, pour du développement, je trouve ça top.
Par contre je trouve pas que la configuration de docker soit simple à faire pour éviter au maximum une évasion de conteneur (beaucoup de paramètres à prendre en compte pour minimiser les risques)

Sinon pour du web, je trouve que docker c'est un peu le juste milieu entre une vm et l'environnement hôte. C'est plus léger qu'une vm, ça permet de segmenter par services (un service = un conteneur), de choisir comment sont connectés les conteneurs, mais par contre on n'a pas l'isolation d'une vm.

Hors ligne

#6 Le 28/12/2023, à 18:27

Vobul

Re : docker : pour ou contre ?

j'ai rien lu au-dessus, mais POUR.


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#7 Le 28/12/2023, à 19:11

O_20_100_O

Re : docker : pour ou contre ?

Est-ce qu'une fois installées dans Docker, les images sont figées ou alors reçoivent-elles des mises à jour comme si les paquets étaient installés directement sur le serveur ?

Hors ligne

#8 Le 28/12/2023, à 19:40

bruno

Re : docker : pour ou contre ?

Oui elles ont figées. Il faut une intervention de l'administrateur système pour récupérer une image mise à jour et relancer le conteneur avec cette image. Il existe cependant des outils pour automatiser cette tâche.

vobul a écrit :

j'ai rien lu au-dessus, mais POUR.

Moi aussi je suis pour les visseuses électriques.

#9 Le 28/12/2023, à 21:06

O_20_100_O

Re : docker : pour ou contre ?

Merci, mais encore une question : quand une image est remplacée par une autre version pour mise à jour, les paramètres propres au serveur sont-ils conservés ou faut-il tout régler à nouveau ?

Hors ligne

#10 Le 28/12/2023, à 21:34

krodelabestiole

Re : docker : pour ou contre ?

tu devrais lire la doc, ça répondrait déjà à beaucoup de tes questions : https://doc.ubuntu-fr.org/docker

on peut créer ses propres images avec un Dockerfile, ça revient à créer une instance linux minimale sur laquelle on va installer et configurer les logiciels de son choix. en général on part d'une image créée par quelqu'un d'autre.
quand on la lance ça créé un container, dans lequel les données ne sont pas persistées : il sera réinitialisé à chaque lancement.
les paramètres doivent donc être gérés soit par des fichiers externes, soit par des arguments de la ligne de commandes (avec laquelle on lance le container). on peut créer des fichiers docker-compose pour se simplifier la ligne de commande.
on peut évidemment tout mettre à jour quand on en a envie.

Hors ligne

#11 Le 28/12/2023, à 21:35

Nuliel

Re : docker : pour ou contre ?

Ça dépend si la batterie est amovible lol

@O_20_100_O: avec le paramètre -v, tu peux monter un dossier de l'hôte dans le conteneur, donc tu peux avoir tes fichiers en dehors de docker.
Par exemple, la commande pour lancer un conteneur nginx

docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx

Là le -v permet de garder sur l'hôte les fichiers html, css, ...
Et pour la configuration de nginx, on peut utiliser docker cp qui va copier un fichier dans le conteneur.
Ce ne sont que des exemples, on pourrait avoir le fichier de conf de nginx défini dans le Dockerfile, un fichier qui sert à générer l'image pour faire des conteneurs.

Edit: grillé par kro

Dernière modification par Nuliel (Le 28/12/2023, à 21:36)

Hors ligne

#12 Le 29/12/2023, à 04:50

krodelabestiole

Re : docker : pour ou contre ?

krodelabestiole a écrit :

tu devrais lire la doc, ça répondrait déjà à beaucoup de tes questions : https://doc.ubuntu-fr.org/docker

quoique... je viens de la relire et pour le moment cette page n'explique pas grand chose hmm

du contenu plus didactique ici : https://datascientest.com/docker-guide-complet
et pour apprendre via un tutoriel : https://grafikart.fr/tutoriels/docker-intro-634

... et je viens de retrouver un vieux brouillon oublié, c'est absurde https://doc.ubuntu-fr.org/utilisateurs/ … ons/docker

Hors ligne

#13 Le 29/12/2023, à 07:58

O_20_100_O

Re : docker : pour ou contre ?

Oui, j'avais lu. Merci à tous ceux qui contribuent à la documentation et qui ont participé à ce sujet.

À ce stade, j'en retiens que c'est utile aux amateurs pour faire un truc vite fait et jetable à court terme. Par contre, pour exploiter sérieusement en production, c'est plutôt un outil de professionnel.

Dernière modification par O_20_100_O (Le 29/12/2023, à 07:59)

Hors ligne

#14 Le 01/01/2024, à 19:25

krodelabestiole

Re : docker : pour ou contre ?

moui...
plus simplement c'est aussi utile aux amateurs (ou professionnels d'ailleurs) qui voudraient mettre en place plus d'un service sur une machine, en particulier si ces services utilisent des technologies différentes (PHP et nodeJS par ex.)

parce que dans ce cas il faut mettre en place un reverse proxy, et on atteint déjà un niveau de complexité général qui rend intéressante une approche infrastructure as code facilement accessible sans être un devops chevronné, via l'utilisation de docker compose et traefik. de cette manière on peut migrer l'intégralité de son environnement d'une machine à une autre en quelques minutes, avec un niveau de sécurité satisfaisant, et ça offre une souplesse et ouvre des perspectives d'évolution largement accessibles et puissantes (load balancing, etc.).

docker peut aussi être intéressant pour se créer des alias de commandes telles que php, composer, yarn, ou même yt-dlp ou speedtest par ex., qui fonctionneront absolument partout, sans avoir besoin de rien installer d'autre que docker.

alias ytdl=docker run --rm -it -v $PWD:/downloads jauderho/yt-dlp:latest

bref dès qu'on touche un peu à du serveur, je vois peu de cas pour lesquels cette techno ne serait pas intéressante (et même parfois en dehors de ce contexte).

Hors ligne