Partage
  • Partager sur Facebook
  • Partager sur Twitter

Docker - Questions multiples

Sujet résolu
    18 avril 2017 à 14:24:19

    Bonjour,


    Je suis actuellement en train de regarder la technologie Docker.

    J'aurai donc quelques questions s'il vous plaît:

    1. Si je prends un container debian et que j'y rajoute mes modifications (FTP, MySQL,Apache etc...) Je dois réaliser un commit pour sauvegarder les modifications effectuées? 

    2. En faisant la commande docker -d nomcontainer s'il arrive à planter (Pour une raison quelconque) les modifications effectués sur celle-ci seront perdu? Comment y remédier à ça s'il vous plaît?

    3. J'aimerai réaliser un serveur FTP la dessus afin de transférer mes fichiers, mais je n'y arrive tout simplement pas, j'ai réaliser un apt-get install proftpd et je lance le conteneur en faisant : docker run -it -p 21:21  Mais rien n'y fait.

    4. J'aimerai réaliser un système de backup de conteneur, est-ce possible s'il vous plaît (J'ai vu l'option save dans image, mais comment faire pour le restaurer)? 

    Sur ce point j'ai trouvé docker save -o (Pour le sauvegarder) et docker load -i (Pour le restaurer)

    5. Si je prends un dédié, et j'aimerai savoir s'il est possible de séparer les sites par conteneurs?

    Je pense que c'est à peu près tout, pour l'instant :p 

    Merci beaucoup. 

    -
    Edité par Bryann705 18 avril 2017 à 14:40:27

    • Partager sur Facebook
    • Partager sur Twitter
    Cordialement Bryan
      18 avril 2017 à 16:30:17

      Salut,

      Bryann705 a écrit:

      1. Si je prends un container debian et que j'y rajoute mes modifications (FTP, MySQL,Apache etc...) Je dois réaliser un commit pour sauvegarder les modifications effectuées? 

      Tu peux le faire avec commit mais ce que tu veux, c'est utiliser un Dockerfile. Choisis ton image de base, Debian dans ton cas, et installe tes packages dans le Dockerfile.

      Ensuite build ton image :

      docker build -t="tonimage" .

      Et run la en background

      docker run -d tonimage

      Bryann705 a écrit:

      2. En faisant la commande docker -d nomcontainer s'il arrive à planter (Pour une raison quelconque) les modifications effectués sur celle-ci seront perdu? Comment y remédier à ça s'il vous plaît?


      Non les modifications ne seront pas perdus. Tu as juste à restart le container.
      Et la encore avec un Dockerfile, moins de problèmes.

      Bryann705 a écrit:

      3. J'aimerai réaliser un serveur FTP la dessus afin de transférer mes fichiers, mais je n'y arrive tout simplement pas, j'ai réaliser un apt-get install proftpd et je lance le conteneur en faisant : docker run -it -p 21:21  Mais rien n'y fait.

      Encore une fois, installe proftpd depuis ton Dockerfile. Après il faut EXPOSE les ports 20 et 21. 

      Bryann705 a écrit:

      4. J'aimerai réaliser un système de backup de conteneur, est-ce possible s'il vous plaît (J'ai vu l'option save dans image, mais comment faire pour le restaurer)? 

      Sur ce point j'ai trouvé docker save -o (Pour le sauvegarder) et docker load -i (Pour le restaurer)


      C'est bien ca. 

      Bryann705 a écrit:

      5. Si je prends un dédié, et j'aimerai savoir s'il est possible de séparer les sites par conteneurs?



      Oui, tu peux utiliser docker-compose et mapper tes containers sur différents ports


      -
      Edité par Zeenaseek 18 avril 2017 à 16:32:25

      • Partager sur Facebook
      • Partager sur Twitter
        18 avril 2017 à 17:17:59

        Bryann705 a écrit:

        3. J'aimerai réaliser un serveur FTP la dessus afin de transférer mes fichiers, mais je n'y arrive tout simplement pas, j'ai réaliser un apt-get install proftpd et je lance le conteneur en faisant : docker run -it -p 21:21  Mais rien n'y fait.

        Il y a peut-être un peu de conf à faire, si t'as pas les bases de l'administration système, commence par ça, et intéresse toi à Docker plus tard.
        • Partager sur Facebook
        • Partager sur Twitter

        Blond, bouclé, toujours le sourire aux lèvres...

          19 avril 2017 à 14:01:34

          Bonjour,

          je vous remercie de vos réponse, alors pour confirmer avec dockerfile:

          Je fais un docker image ls

          REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE


          Puis, je rajoute dans mon fichier dockerfile
          FROM ubuntu
          MAINTAINER TEST
          ADD test.sh /
          EXPOSE 80
          

          Puis dans le fichier test.sh 

          #!/bin/bash
          apt-get update
          apt-get install -y apache2 php mysql-server libapache2-mod-php php-mysql
          

          et je réalise la commande suivante:

          docker build -t="test" .

          Comme vu ici : https://github.com/kstaken/dockerfile-examples 

          Je fais de nouveau un docker image ls

          test                latest              ee6df3e972f2      6 seconds ago       117 MB

          ubuntu              latest              6a2f32de169d      6 days ago          117 MB


          Ensuite je lance un docker run -it -p 80:80 test


          Mais rien n'y fait..

          J'ai quelques connaissance en administration système mais pas du tout en docker..
          J'ai pensé à réaliser un NGINX reverse Proxy

          Merci. 

          -
          Edité par Bryann705 19 avril 2017 à 14:02:07

          • Partager sur Facebook
          • Partager sur Twitter
          Cordialement Bryan
            19 avril 2017 à 14:27:51

            ADD test.sh /
            va juste copier le fichier. Tu peux le faire de cette façon : 

             Dockerfile : 
             
            FROM ubuntu:16.04
            
            RUN apt-get update && apt-get install -y \
            	apache2 \
            	php \
            	mysql-server \
            	libapache2-mod-php \
            	php-mysql
            
            ENV APACHE_RUN_USER www-data
            ENV APACHE_RUN_GROUP www-data
            ENV APACHE_LOG_DIR /var/log/apache2
            
            EXPOSE 80
            
            CMD["/usr/sbin/apache2", "-D", "FOREGROUND"]
            

            -
            Edité par Zeenaseek 19 avril 2017 à 14:28:02

            • Partager sur Facebook
            • Partager sur Twitter
              19 avril 2017 à 16:31:27

              Merci ^^

              Dernière question :

              ENV APACHE_RUN_USER www-data
              ENV APACHE_RUN_GROUP www-data
              ENV APACHE_LOG_DIR /var/log/apache2

              Ce sont des variables d'environnement si j'ai bien compris la documentation, à quoi peuvent-elles bien servir? 

              Imaginons maintenant :

              Sur chaque containers je souhaite rajouter un serveur proftpd et définir un login/motdepasse

              Je pourrais réaliser la commande RUN useradd -m -p "MDP" -s /bin/bash UTILISATEUR

              Donc là si je souhaite lancer la machine  je fais un run -d -p 80:80 443:443 NOMMACHINE 

              PS pourrais t-on m'expliquer pourquoi on utilise "\" alors que normalement on peut faire : apt-get update && apt-get install -y apache2 php mysql-server libapache2-mod-php php-mysql



              Merci et désolé pour mes questions..

              • Partager sur Facebook
              • Partager sur Twitter
              Cordialement Bryan
                19 avril 2017 à 16:44:57

                - Ces variables d'environnement servent à préciser à Apache comment est-ce qu'il doit s’exécuter. Regarde dans /etc/apache2/envvars, tu vas comprendre.

                 - Tu ne peux pas set le mot de passe avec useradd.

                - si tu veux aussi le port 443, tu dois l'EXPOSE dans le Dockerfile

                - les "\" servent juste à faire un retour à la ligne. C'est plus propre.
                • Partager sur Facebook
                • Partager sur Twitter
                  19 avril 2017 à 18:33:35

                  Parfait, merci pour tous ces réponses.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Cordialement Bryan

                  Docker - Questions multiples

                  × 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