Partage
  • Partager sur Facebook
  • Partager sur Twitter

Docker à quoi ça sert ?

    17 mai 2015 à 19:02:43

    Bonjour ! Après plusieurs recherches sur le web, je n'arrive pas à comprendre ce qu'est Docker et à quoi ça sert. Je précise que j'utilise un mac et que je suis débutant en code et en programmation. Pourriez-vous donc m'expliquer avec des mots simples ce qu'est Docker et quel est son rapport avec Linux. Imaginez que vous avez un enfant en face de vous ou une grand-mère, qu'est-ce que Docker...?

    Merci d'avance !

    -
    Edité par R2D22 17 mai 2015 à 19:05:06

    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2015 à 11:53:06

      Alors pour faire simple Docker est un système de virtualisation par conteneur.

      Docker permet donc de créer autant de conteneur que l'on souhaite, chaque conteneur vit sa vie indépendamment des autres avec sa propre arborescence, sa propre interface réseau, ses propres processus...

      La différence avec la virtualisation "standard" comme propose VirtualBox ou VMWare réside dans le fait que Docker va partager entre ses conteneurs et l'hôte le maximum de chose. Il n'y a par exemple qu'un seul noyaux qui tourne contre un par VM, tous les fichiers communs entre plusieurs conteneurs ne sont stocké qu'une seule fois.

      Chaque conteneurs dispose de sont propre processus d'init (avec un PID de 1) et se termine quand celui-ci se fini. Tous les processus du conteneurs n'ont pas accès aux processus de l'hôte ou des autres conteneurs mais l'hôte lui a accès à la totalité des processus (chaque conteneur à sa propre table de processus).

      Le principale avantage par rapport à une VM est la légèreté, une centaine de Mo de disque dur et à peine 10Mo de RAM pour un conteneur Docker faisant tourner une pile Apache + PHP contre plusieurs Go de disque et plusieurs centaines de Mo pour une VM équivalente.

      Je sais que c'est certainement pas claire mais c'est si tu as des interrogations sur ma réponse, n'hésite pas...

      • Partager sur Facebook
      • Partager sur Twitter
      I <3 Ge0 | nohar | Shig was here -> .
        18 mai 2015 à 14:12:39

        Merci beaucoup pour ta réponse ! Je trouve que c'est un très bon résumé mais j'aurais effectivement plusieurs interrogations :)

        Je connais VirtualBox et VMWare seulement sous la forme de logiciels qui servent à créer des machines virtuelles (par exemple avoir un Windows sur un Mac). Apparement ces logiciels ont des fonctions plus poussées que la simple utilisation d'un système d'exploitation dans un autre. Pourrais-tu m'apporter plus de précisions là-dessus.

        Je vais parler maintenant de mon cas concret et à quel moment j'ai entendu parler de Docker pour vouloir m'y intéresser. Peut-être que ça te guidera dans la réponse. Alors voilà, il y a quelques mois j'ai commencé à coder un site web en HTML/CSS et en PHP comme language côté serveur. C'était tout nouveau pour moi. Récemment j'ai découvert NodeJS, et j'ai tout de suite adheré et voulu migrer mon site vers NodeJS avant d'avoir un site très conséquent. Plus tôt je ferais cette migration plus simple ce sera. Sentant que seul je n'y arriverais pas j'ai contacté une petite start-up. Cette start-up m'a fait un devis pour m'aider à coder mon site et faire la migration vers NodeJS. Et à un moment dans ce devis il est écrit : "Mise en place de la base de données et importation des données (mise en place de la base de données en Docker container, design du schéma, insertion de données test)". Entre-temps j'ai découvert le framework Meteor, je l'ai tout de suite adoré. Ce framework si jamais tu n'en a pas entendu parler est un framework qui englobe NodeJS, donc avec lui on peut coder un site entièrement en Javascript et avoir accès à la base de donnée côté client et côté serveur, bref partout. Je me demande donc à quel moment Docker est indispensable, sachant que avec Meteor on peut créer une application native ou une webapp.

        Et troisième point ou j'ai soif de précision, quel est le rapport entre Linux et Docker ?

        Un grand merci d'avance !

        -
        Edité par R2D22 18 mai 2015 à 14:15:15

        • Partager sur Facebook
        • Partager sur Twitter
          18 mai 2015 à 17:50:35

          Les logiciels de virtualisation et notamment VMWare sont (dans des versions différentes) très utilisé sur les serveurs des entreprises qui préfére acheter un gros serveur physique et créé de multiple VM dessus, on peut alors faire tourner plusieurs dizaines voire centaines de serveurs virtuels sur un seul serveur physique.

          Pour le framework Meteor, effectivement je connaissais pas mais ça à l'air intéressant. Pour ta question, l'entreprise ta inclue dans le devis la mise en place de container pour ton application permettant de faciliter grandement le déploiement sur un serveur disposant de docker installé. Par exemple si ton application fonctionne avec un conteneur Docker, pour lancer ton application tu auras besoin que de trois lignes qui ressembleront à ça :

          docker run -d --name app-data app-data /bin/true
          docker run -d --name app-mysql --volumes-from app-data mysql
          docker run -d --name app --links app-mysql:database --volumes-from app-data app

          Ces trois lignes permettront alors de déployer ton application sur n'importe quelle serveur à partir du moment ou Docker est installé dessus.

          Pour ta dernière question, Docker, est très fortement lié à Linux car il ne fonctionne (pour l'instant) que sur celui-ci. En effet, Docker utilise des API bas niveau du noyau Linux notamment LXC qui permet d'exécuter des processus dans des environnements distincts. Il est donc très compliqué de porté Docker sur un autre système d'exploitation.

          Si certains points ne sont pas clair, n'hésite pas.

          -
          Edité par Toshy62 18 mai 2015 à 17:52:05

          • Partager sur Facebook
          • Partager sur Twitter
          I <3 Ge0 | nohar | Shig was here -> .
            18 mai 2015 à 18:23:27

            Encore merci pour toutes ces précieuses informations. Si je comprend bien, Docker est l'alternative aux hébergeurs qui louent des serveurs (tels que OVH, 1and1 etc.) ? C'est-à-dire que l'on peut acheter soi-même un serveur et l'utiliser pour déployer notre site web grâce à Docker (ou grâce aux autres systèmes de virtualisation comme Virtual Box ou VMWare) ?

            -
            Edité par R2D22 18 mai 2015 à 18:29:07

            • Partager sur Facebook
            • Partager sur Twitter
              19 mai 2015 à 10:19:51

              Pas tout à fait.

              En fait tu peux voir docker comme un morceau de ton système qui ne fait tourner que ce dont tu as besoin.

              Si je veux un serveur web, je peux installer un linux et mettre dessus un apache, mais une majorité des ressources sera utilisée pour faire tourner le système, en plus d'apache. 

              Avec docker tu ne feras tourner que ton apache.

              Le but d'un serveur est de faire tourner des services. Docker prend ce principe à la lettre et te permet de ne faire tourner que des services, sans tout le reste.

              Pour de la production, cela est utile si tu as à faire tourner beaucoup de services. Si tu dois juste faire tourner un apache, l'utilité est moindre, quoique la souplesse de déploiement qu'offre docker est intéressante.

              Par contre pour des développeurs, cela peut être utile de pouvoir monter une instance d'un service en deux commandes pour faire des tests, et de les déployer là encore en deux commandes en production. D'autant plus que tu pourras faire tourner tes conteneurs facilement sur Mac ou windows sans avoir à installer de linux.

              Bref, il y a beaucoup d'intérêts à l'utiliser, mais ce n'est pas la solution à tout :p

              • Partager sur Facebook
              • Partager sur Twitter
                23 juillet 2015 à 10:43:47

                Bonjour

                Est-ce qu'on peut utiliser docker pour faire tourner par exemple:

                - un serveur de fichiers ?

                - un serveur zimbra ?

                Merci

                • Partager sur Facebook
                • Partager sur Twitter
                  23 juillet 2015 à 11:48:25

                  NoémieFREYBURGER-BUTTET a écrit:

                  Bonjour

                  Est-ce qu'on peut utiliser docker pour faire tourner par exemple:

                  - un serveur de fichiers ?

                  - un serveur zimbra ?

                  Merci


                  Oui, tout ce qu'on veut peut être encapsulé dans un docker.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 octobre 2015 à 18:50:22

                    ( Désolé, je m’incruste.. :lol: )

                    Moi qui n'ai pas de connaissances en admin système (et qui ne veux pas forcément en avoir), j'aurais quelques questions sur le sujet :

                    #1 - Est-ce qu'utiliser docker pourrait me permettre de m'affranchir de ça (admin serveur) ?
                    #2 - Et du coup, le container on le mets où ? Sur un serveur dédié ?
                    #3 - C'est quoi la différence par rapport à du PaaS (type : Heroku, Digital Ocean & co) ?

                    Merci d'avance pour les infos ! :)

                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 octobre 2015 à 21:57:02

                      Salut,

                      #1 : non, et je dois dire que sans compétences autant oublier

                      #2 : sur n'importe quel serveur basé sur un noyau linux avec une version de docker récente

                      #3 : ce que tu cites est utilisé pour la gestion d'un grand nombre de nodes, docker est juste là pour encapsuler des processus

                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 octobre 2015 à 11:23:53

                        Du coup y'a un truc que je comprends pas c'est le niveau de "securité" proposé par Docker.

                        Un des interets de la virtualisation c'est:

                        Facilement "restorable"...si une VM plante, ou l'ecrase avec une version stable qu'on avait sauvegardé auparavant.

                        Separation "forte" des ressources de la VM avec celle du PC...reduisant les risques d'attaques/piratages.

                        _

                        Mais du coup avec Docker...c'est un juste un bidule qui instancie un programme ?

                        Que se passe t-il s'il y a plantage et qu'on veut retablir vite le service ?

                        Qu'en est-il concernant les attaques/piratages ?

                        _

                        Mes questions sont deliberemment naives...etant donné que je connais mal Docker...ca m'interesse de comprendre ces aspects :)

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Si y'a pas d'accents dans mes messages c'est parce que je suis sur un clavier norvegien :)

                          2 octobre 2015 à 11:40:39

                          Une image définit ce que contiendra ton conteneur.

                          Un conteneur est l'instance d'une image, donc si ton conteneur plante, il suffit de redémarrer un autre conteneur avec la même image.

                          En termes d'attaque le processus dans le conteneur est limité au conteneur lui-même (ressources, path, filesystem ...). Imaginons que je crée un conteneur avec ssh dedans, que je mappe les ports host:22 -> conteneur:22 , un attaquant se retrouvera dans le conteneur, fera mumuse sans impacter l'host. De plus, comme une image est toujours statique, il te suffit de relancer un conteneur pour repartir avec une instance propre.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 octobre 2015 à 11:42:59

                            Ok merci :)

                            Encore un peu de vocabulaire du coup...pour comprendre ta reponse il faut savoir ce qu'est une "image" :)

                            -
                            Edité par mrjay42 2 octobre 2015 à 11:43:06

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Si y'a pas d'accents dans mes messages c'est parce que je suis sur un clavier norvegien :)

                              20 juillet 2016 à 16:11:49

                              S'il vous plait est-ce qu'il ya quelqu'un qui pourrait m'expliquer la relation entre l'outil docker et la methodologie DEVOPS ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                11 août 2016 à 7:49:21

                                Bonjour 

                                est ce que quelqu'un pourrai m'aider sur mon probleme car en ce moment je travaille sur gns 3 et je n'arrive pas à fixer une adresse à mes hote l'erreur m'indique d'installer doker.

                                mais je ne comprends pas le rapport  :(

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  4 novembre 2018 à 2:04:44

                                  Je relance le sujet mais est ce que vous conseilleriez Docker pour développer un site Wordpress par exemple?

                                  L'idée serait que si on "encapsule" le site dans un container, il serait facile de l'envoyer sur un serveur distant. Si non, pourquoi?

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    5 novembre 2018 à 9:41:08

                                    Oui, docker c'est très simple pour ça. Cependant avant de se lancer il est bon de bien en comprendre les tenants et aboutissants.

                                    Voici une vidéo pas mal pour découvrir le sujet:

                                    https://www.youtube.com/watch?v=ZVaRK10HBjo

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      15 janvier 2019 à 9:31:19

                                      Bonjour s'il  vous plaît a quoi sert un docker?

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Docker à quoi ça sert ?

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown