Ldfa Posté(e) le 30 décembre 2019 Partager Posté(e) le 30 décembre 2019 Article publié le 09/02/2017 Après mal de temps, j’ai enfin décidé à me mettre à étudier Docker. Étant très hésitant au départ, je me suis vite aperçu que Docker est un outil extrêmement puissant, flexible avec un potentiel Devops incroyable. La question que se posent beaucoup de personnes est: qu’est-ce que c’est Docker? Contrairement à la virtualisation classique ou vous virtualisez l’intégralité de la machine et tout se qu’elle héberge, Docker n’héberge que les applications et les librairies! Arrêter Sous Debian: On ajoute les dépôts docker et on installe: echo « deb https://apt.dockerproject.org/repo debian-jessie main » > /etc/apt/sources.list.d/docker.list apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys 58118E89F3A912897C070ADBF76221572C52609D apt-get update && apt-get install docker-engine Sous Centos: On ajoute les dépôts docker et on installe: vi /etc/yum.repos.d/docker.repo [dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/7/enabled=1gpgcheck=1gpgkey=https://yum.dockerproject.org/gpg yum install docker-engine systemctl enable docker systemctl start docker Afin de nous faciliter la vie, on attribue les droits à notre utilisateur pour éviter de bosser avec root. usermod -a -G docker <votre user> Dans l’exemple ci-dessous, on va chercher une image nginx: docker search nginx On rapatrie l’image sur notre machine : docker pull nginx On vérifie notre liste d’images: docker images On s’aperçoit que notre image nginx a bien été rapatrié: On installe le container docker run -d –name=ServeurNginx nginx:latest On vérifie que le container est bien installé: docker ps -a On démarre notre container: docker start <container id> docker start 1f8b15c5b642 Nous allons maintenant inspecter la configuration de notre container afin de déterminer l’adresse IP local du container: docker inspect <id du container> Vous verrez toutes les informations de votre container et notamment un élément qui nous intéresse: « IPAddress »: « 172.17.0.2 »,« IPPrefixLen »: 16, L’IP ci-dessus correspond à l’interface virtuel de votre container. Si vous tentez de vous connecter en HTTP via l’adresse de votre container, le serveur nginx hébergé dans votre container va répondre: elinks 172.0.0.2 Bon j’imagine que vous allez me poser la question suivante: « comment on fait pour que notre container soit accessible de l’extérieur? » Pour cela rien de plus simple, nous allons créer un deuxième container depuis l’image nginx avec quelques arguments en plus: docker run -d -p 9876:80 –name=Webserver3 nginx:latest Votre container sera joignable via le port 9876 depuis l’extérieur: Allons encore un peu plus loin en mappant des répertoires internes de votre container directement sur un répertoire de votre serveur (par exemple pour mettre à jour le contenu d’un site web hébergé dans votre container). docker run -d -p 9876:80 –name=WebServer4 -v /home/usr/www:/usr/share/nginx/html nginx:latest Il est possible avec Docker de créer un container à partir d’un fichier de configuration nommé Dockerfile. Pour cela créer un fichier nommé Dockerfile. Dans notre fichier nous allons créer un container Debian et installer un serveur apache2 accessible depuis l’extérieur. Ci-dessous le contenu du Dockerfile # Image FROM debian:stable #Information sur le propriétaire du container MAINTAINER vdahmane@gmail.com# Commande RUN utilisé uniquement lors de la creation du container (necessite un docker build)RUN apt-get update && apt-get upgrade -y && apt-get install -y apache2 telnet elinks openssh-server# Creation variable ENV VARIABLE ma-variable# PORT 80 OuvertEXPOSE 80 # On expose le port SSH pour pouvoir se connecter sur la machine EXPOSE 22# Commande passé une fois le container créé (ne neccessite pas un docker build juste un run)# Commande 1er arg 2eme arg CMD [« /usr/sbin/apache2ctl », »-D », »FOREGROUND »] Reste plus qu’à créer notre container depuis le Dockerfile. On crée notre image Docker: docker build -t myapache . On installe notre container: docker run -d -P 9999:80 –name=Debianapache myapache:latest Il ne reste plus qu’à vérifier via l’IP de votre serveur Docker si le serveur apache est accessible: Supprimer tout les container actifs: docker rm `docker ps -a -q` Démarrer ou arrêter un container : docker start <container> docker stop <container> Supprimer tout les container actif: docker rm `docker ps -a -q` Supprimer une image docker (vérifier qu’aucun container n’est actif): docker rmi <image> Vous connecter directement sur votre container: docker run -it <votre container> /bin/bash Le repository docker https://hub.docker.com/explore/ contient toutes les images dockers possible et imaginable. Vous pouvez aussi bien trouver des container apache que nginx voir même des images de distributions Linux comme Centos ou Debian. Je vous suggère de créer un compte et d’y aller faire un tour. Docker-compose est un outil officiel Docker absolument génial qui permet de gérer à 100% vos container uniquement un fichier de configuration yml. Cet outil est d’autant plus pratique si vos applications nécessite l’installation de plusieurs containers pour fonctionner. Le tutoriel sur docker-compose est disponible ici: Tuto Docker | Gérer vos container avec DockerCompose Afficher l’article complet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.