Salut tout le monde,


J'ai pu voir que vous êtes beaucoup Docker par chez vous

Il y a quelques mois j'ai commencer à me mettre un peut à Docker, puis LXC histoire de dormir un peut moins bête.

J'ai vraiment fait les bases de docker, rechercher une image, la faire tourner et voila, ensuite je suis passer sur LXC pour voir un peut la différence.

Quelqu'un utilise aussi LXC ? Pour mon avis perso, pour faire des tests d'appli suivant tel ou tel environnement etc je trouve ça parfait. Mais au niveau d'un service en production je préfère utiliser LXC.

Donc voili voilou, si vous avez un peut d'expérience à partager sur Docker LXC je suis preneur ^^
Salut,

Pour remettre un peu les choses dans le contexte ^^, docker est juste une surcouche à LXC.

J'ai longtemps utilisé LXC, pour remplacé openVZ qui vieillissais et que j'ai remplacé par docker maintenant. Malgré qu'il m'arrive de temps en temps de créer un conteneur directement avec lxc.
En fait c'est surtout l'approche qui est différente, LXC va te créé un conteneur complet, avec un système d'init, sur lequel tu te connectera. Docker à plus une approche de service, on crée un conteneur docker pour un service, c'est tous. Bref je sais pas si je suis clair.

Autrement ... C'est quoi ta question exactement ^^ ?
Oui je savais bien que docker est une surcouche à LXC.

En faite je voyais plus docker pour un environnement de dev ou de test, et plutôt lxc pour tout ce qui est de mettre en prod. J'ai justement été il y a quelque temps à une conférence sur docker, et justement la haut il n'y a pas beaucoup de personne qui faisais tourner des services en prod, par exemple un dns.

J'ai du coup approfondit d'abord plus LXC et j'ai commencer à faire mes petits serveur web, mysql, samba pour faire un petit serveur collaboratif.

Au niveau de la consultation des logs d'un docker apache du coup tu peux les visualiser quand même ?
Je ne crois pas que Docker soit une surcouche à LXC (en fait, c'était ça dans un premier temps, Docker était juste une API de haut-niveau pour LXC). Ils ont développé leur propre implémentation, libcontainer, écrit en Go, justement pour devenir indépendant vis-à-vis du LXC et du userland nécessaire. Qu'on m'arrête si je dis une bêtise.
Wonderfall wrote:Je ne crois pas que Docker soit une surcouche à LXC (en fait, c'était ça dans un premier temps, Docker était juste une API de haut-niveau pour LXC). Ils ont développé leur propre implémentation, libcontainer, écrit en Go, justement pour devenir indépendant vis-à-vis du LXC et du userland nécessaire. Qu'on m'arrête si je dis une bêtise.
Tu m'as mis le doute, et oui tu as raison, depuis la version 1.0, docker ce passe de lxc pour libcontainer. Après le principe d'isolation est le même (cgroup + namespace).


@Totof :
Utiliser LXC ou Docker sont deux approches différentes, comme je disais, LXC tu fais tourné un OS complet, Docker juste des librairies.

Docker n'est pas beaucoup utilisé en prod pour le moment, car docker est jeune (version initial en 2013). LXC n'est pas beaucoup utilisé en prod également, comme beaucoup de solution d'isolement.

Pour les logs, oui c'est visualisable, sois tu te connecte à la machine (docker exec), sois tu redirige les logs vers le stdin stderr, et tu regarde avec docker logs.
un mois plus tard
Bonjour

Mes recherches sur LXC et Docker mon menées à votre forum notamment sur l'excellent tuto consacrer à docker.

Actuellement j'essaie de comprendre au sens théorique la différence dans la conception d'un conteneur docker et LXC et votre phrase répond à une question mais je souhaiterai des éclaircissement pour comprendre
Xataz wrote:Utiliser LXC ou Docker sont deux approches différentes, comme je disais, LXC tu fais tourné un OS complet, Docker juste des librairies.
LXC : Le conteneur est créer avec un template lié à une distribution comme debian,Ubuntu Archilinux ect... cela v eut dire que l integralité de la distributuion est installé dans le conteneur ?

Docker: Le conteneur est créer à partir d'une image de base elle aussi lié à un environnement de distribution debian ,Ubuntu et autres... mais de cet OS il est récupérer seulement les librairie dans le conteneur ?

Le conteneur LXC de base contient donc plus de chose que le conteneur dockers ?

Merci de vos réponses
20 jours plus tard
Je me permet de relancer le sujet, si vous pouviez m'éclairer ?
Salut,

Pour faire simple, je vais dire que tu as raison.
Du moins ce sont les utilisations "normal" de ces deux outils, lxc pour faire une machine complète (avec kernel partagé) et docker pour faire du micro-service.

Dans la pratique, les deux peuvent faire la même chose, on peux très bien utiliser un init complet sous docker par exemple. Et les deux fonctionnent plus ou moins de la même manière, ils utilisent les cgroups et les namespaces pour isolées les process.

Après ce qui fait la force de docker, est avant tout sa simplicité, comparé à lxc qui est complexe à mettre en place, de créé des templates etc ...

J'espère répondre à ta question
Oui merci pour la réponse

J'ai une autre question qui cible plus docker seul.

SI j'ai bien compris je peut faire un conteneur Mysql seul dans son coin, qui sera utiliser par d'autre conteneurs exemple :


- conteneur 1 avec PHP,APACHE et un joomla

- conteneur 2 avec PHP,APACHE et un wordpress


j'aurais pu faire de même si je veut une version php ou apache commune a plusieurs conteneur ?
Tu peux faire comme tu veux en fait.

Personnellement j'utilise nginx, mais ma stack de test est composé de 4 conteneurs:
- 1 mysql
- 1 php5
- 1 php7
- 1 nginx

Mes sites sont hors des conteneurs via les volumes.
Ce qui me permets de faire des mixes, de tester la même appli avec php5 et php7.
Oui en fait je prenais un exemple de configuration hébergement web pour illustrer mon propos, bien évidement il existe plein d'autres solutions.

- Il est donc possible de faire un conteneur docker qui contient plusieurs application ou alors des conteneur mono application, à partir de là on jongle comme on veut ?

- Pour revenir au conteneur LXC dans lequel il y a installation de l 'OS complet du coup cela se rapproche d'une machine virtuelle Linux auquel on soustrait le Kernel ? Le poids de ce conteneur et donc tout ce qui va avec exécution, démarrage, extinction etc... est donc similaire à une VM ?
giulian wrote:Oui en fait je prenais un exemple de configuration hébergement web pour illustrer mon propos, bien évidement il existe plein d'autres solutions.

- Il est donc possible de faire un conteneur docker qui contient plusieurs application ou alors des conteneur mono application, à partir de là on jongle comme on veut ?

- Pour revenir au conteneur LXC dans lequel il y a installation de l 'OS complet du coup cela se rapproche d'une machine virtuelle Linux auquel on soustrait le Kernel ? Le poids de ce conteneur et donc tout ce qui va avec exécution, démarrage, extinction etc... est donc similaire à une VM ?

- Oui tu peux faire un conteneur avec plusieurs applications, comme plusieurs conteneur pour séparer les services. Par exemple pour ma seedbox, j'ai un conteneur par utilisateurs qui contient nginx+php+rutorrent+rtorrent. Et en plus un autre conteneur nginx qui fait du reverse sur celle-ci.

- LXC a un poids supérieur au conteneur Linux (car init avec tous ce qui va avec), mais reste moins lourd qu'une VM, car il y a une relation niveau hardware. Contrairement au VM, les conteneurs communique directement avec le CPU, la RAM etc ... Les VM ont créé un hardware "virtuel".
Merci beaucoup pour ces réponses très précises
Répondre…