Tutoriel Docker Documentation Release 0.1.0 (2018-03-09)
Total Page:16
File Type:pdf, Size:1020Kb
Tutoriel Docker Documentation Release 0.1.0 (2018-03-09) id3 Technologies 2020-9-14 12:6 Contents 1 Introduction à Docker 2 1.1 Pourquoi utiliser docker ?......................................3 1.1.1 Transformation de la DSI des entreprises..........................3 1.1.2 Pour donner davantage d’autonomie aux développeurs..................4 1.1.3 Faire évoluer son système d’information..........................4 1.1.4 Pour que ça fonctionne aussi sur une autre machine....................5 1.1.5 Livre blanc Ubuntu.....................................5 1.2 Définitions concernant l’agilité et le mouvement Devops ......................5 1.2.1 Définition de Devops p.34 Programmez! p.214 janvier 2018...............5 1.2.2 Définition 2, Le Devops pour répondre à l’appel de l’innovation 2018-01-04.......5 1.2.3 Définition 3, extrait p.53 MISC N95, Janvier/février, 2018, “Ne pas prévoir, c’est déjà gémir” ...........................................6 1.2.3.1 Citations......................................6 1.2.3.1.1 Ne pas prévoir, c’est déjà gémir.....................6 1.2.3.1.2 La vie, c’est comme une bicyclette, il faut avancer pour ne pas perdre l’équilibre................................6 1.2.4 Devops, intégration et déploiement continus, pourquoi est-ce capital et comment y aller ?6 1.2.5 Agilité et Devops: Extrait p. 35 de [Programmez!] , N°214, janvier 2018........7 1.2.6 What is a DevOps Engineer ?................................8 1.3 Définitions concernant Docker....................................8 1.3.1 Définition de Docker sur Wikipedia en français......................8 1.3.2 Docker est “agile”......................................9 1.3.3 Docker est portable..................................... 10 1.3.4 Docker est sécurisé..................................... 11 1.3.5 Les conteneurs Docker sont plus légers et rapides que les machines virtuelles...... 12 1.3.5.1 Containers..................................... 12 1.3.5.2 Virtual machines (VMs).............................. 12 1.3.5.3 Docker can run your applications in production at native speed ......... 12 1.4 Dossier Docker dans le dossier MISC N°95 de janvier/février 2018................ 13 2 Qui utilise Docker en production ? 14 2.1 Historique.............................................. 14 2.1.1 Janvier 2018......................................... 14 2.2 Paypal................................................ 14 2.2.1 Challenges......................................... 15 2.2.2 Solution........................................... 15 3 Actions/news 16 3.1 Actions/news 2018.......................................... 16 3.1.1 Actions/news mai 2018................................... 16 3.1.1.1 DjangoCon 2018 - An Intro to Docker for Djangonauts by Lacey Williams... 16 3.1.1.2 hard-multi-tenancy-in-kubernetes......................... 16 3.1.1.3 containers-security-and-echo-chambers...................... 16 i 3.1.1.4 Aly Sivji, Joe Jasinski, tathagata dasgupta (t) - Docker for Data Science - PyCon 2018........................................ 16 3.1.1.4.1 Description............................... 16 3.1.1.5 Créez un cluster hybride ARM/AMD64 (GNU/Linux N°215 mai 2018)..... 17 3.1.2 Actions/news avril 2018.................................. 17 3.1.2.1 Docker for the busy researcher (from Erik Matsen)................ 17 3.1.2.1.1 Why Docker ?.............................. 17 3.1.3 Actions/news mars 2018.................................. 17 3.1.3.1 Jeudi 29 mars 2018 : Article de Jérôme Petazzoni : Containers par où com- mencer ?...................................... 17 3.1.4 Actions/news février 2018................................. 17 3.1.4.1 Mardi 13 février 2018: import d’une nouvelle base de données données db_id3_intranet.................................. 17 3.1.4.1.1 Suppression du volume djangoid3_intranet_volume (docker volume rm djangoid3_intranet_volume)..................... 18 3.1.4.1.2 Import de la nouvelle base de données (docker-compose -f docker- compose_for_existing_database.yml up –build)............ 18 3.1.4.1.3 Accès à la nouvelle base de données (docker-compose exec db bash). 21 3.1.4.1.4 Arrêt du service (docker-compose -f .docker- compose_for_existing_database.yml down).............. 22 3.1.4.2 Mardi 13 février 2018: mise en place d’une base de données PostgreSQL 10.2 avec import de la base de données db_id3_intranet................ 22 3.1.4.2.1 docker-compose_for_existing_database.yml.............. 22 3.1.4.2.2 Contenu du répertoire init........................ 23 3.1.4.2.2.1 Création de la base db_id3_intranet .............. 24 3.1.4.2.2.2 Création de l’utilisateur id3admin ............... 24 3.1.4.3 Lundi 12 février 2018: mise en place d’une base de données PostgreSQL 10.2. 24 3.1.4.3.1 Dockerfile................................ 24 3.1.4.3.2 docker-compose.yml.......................... 24 3.1.4.3.3 Accès HeidiSQL à partir de la machine hôte.............. 25 3.1.5 Actions/news janvier 2018................................. 25 3.1.5.1 Mercredi 31 janvier 2018 : export/import d’une base de données PostgreSQL (tutoriel PostgreSQL)............................... 25 3.1.5.1.1 Dockerfile................................ 25 3.1.5.1.2 docker-compose.yml.......................... 26 3.1.5.1.3 Export.................................. 26 3.1.5.1.4 Import.................................. 26 3.1.5.1.5 Commandes docker-compose...................... 26 3.1.5.2 Mercredi 31 janvier 2018 : Bilan mardi 30 janvier 2018............. 26 3.1.5.2.1 Suppression de la base db_id3_intranet................. 27 3.1.5.2.1.1 psql -U postgres......................... 27 3.1.5.2.1.2 l................................. 27 3.1.5.2.1.3 drop database db_id3_intranet;................. 27 3.1.5.2.2 Bilan mardi 30 janvier 2018....................... 27 3.1.5.2.3 Pour lancer PostgreSQL......................... 28 3.1.5.2.4 Pour accéder au conteneur....................... 28 3.1.5.2.4.1 docker ps............................ 28 3.1.5.2.4.2 docker exec -ti caa4db30ee94 bash............... 29 3.1.5.2.5 Livre PostgreSQL : Administration et exploitation de vos bases de données ................................. 29 3.1.5.3 Mardi 30 janvier 2018 : écriture des fichiers Dockerfile et docker-compose.yml 29 3.1.5.3.1 Objectifs pour la journée........................ 30 3.1.5.3.2 Avancement, découverte........................ 30 3.1.5.3.3 Historique................................ 30 3.1.5.4 Lundi 29 janvier 2018 : encore un nouveau tutoriel : A Simple Recipe for Django Development In Docker (Bonus: Testing with Selenium) de Jacob Cook 30 3.1.5.4.1 Analyse et plan de travail pour la journée................ 30 3.1.5.4.2 Autre projet intéressant......................... 30 ii 3.1.5.4.2.1 dockerize-all-the-things..................... 30 3.1.5.4.2.2 Kill it with fire.......................... 30 3.2 Actions/news 2017.......................................... 31 3.2.1 Actions/news août 2017................................... 31 3.2.1.1 4 août 2017 “Docker et Shorewall” par Guillaume Cheramy........... 31 3.2.1.1.1 Créer les règles shorewall pour Docker................. 32 4 Tutoriels Docker 33 4.1 Les conseils et formations de Jérôme Petazzoni........................... 33 4.1.1 Se former, seul ou accompagné............................... 33 4.1.2 Jérôme Petazzoni Container training............................ 34 4.2 Tutoriels Docker pour Windows................................... 34 4.2.1 Installation......................................... 34 4.2.2 docker –version....................................... 35 4.2.3 docker-compose –version.................................. 35 4.2.4 docker-machine –version.................................. 35 4.2.5 notary version........................................ 36 4.2.6 Binaires docker sous Windows 10............................. 36 4.2.7 Where to go next...................................... 36 4.3 Get started (https://docs.docker.com/get-started/).......................... 36 4.3.1 docker run hello-world................................... 37 4.3.2 docker –version....................................... 37 4.3.3 Conclusion......................................... 37 4.3.4 Parts............................................. 38 4.3.4.1 Get started Part2 : Containers........................... 38 4.3.4.1.1 Prérequis................................ 38 4.3.4.1.2 Build the app: docker build -t friendlyhello ............... 38 4.3.4.1.3 docker images.............................. 40 4.3.4.1.4 Run the app: docker run -p 4000:80 friendlyhello........... 40 4.3.4.1.5 docker container ls........................... 40 4.3.4.1.6 docker container stop 06193b763075.................. 41 4.3.4.1.7 Tag the image: docker tag friendlyhello id3pvergain/get-started:part2. 41 4.3.4.1.8 Publish the image............................ 41 4.3.4.1.9 Pull and run the image from the remote repository........... 42 4.3.4.2 Get started Part3 : services............................ 42 4.3.4.2.1 Prerequisites............................... 43 4.3.4.2.2 Introduction............................... 43 4.3.4.2.3 About services.............................. 43 4.3.4.2.4 Your first docker-compose.yml file................... 43 4.3.4.2.5 Run your new load-balanced app.................... 44 4.3.4.2.6 docker swarm init............................ 44 4.3.4.2.7 docker stack deploy -c docker-compose.yml getstartedlab....... 44 4.3.4.2.8 docker service ls............................. 45 4.3.4.2.9 docker service ps getstartedlab_web.................. 45 4.3.4.2.10 docker container ls -q.......................... 45 4.3.4.2.11 Sous