Latest Version Here
Total Page:16
File Type:pdf, Size:1020Kb
Tutoriel Docker Release 2019-02-28T14:31:29.517726+01:00 igdevops 2019-02-28T14:31:29.517726+01:00 CONTENTS 1 Introduction à Docker 3 1.1 Pourquoi utiliser docker ?........................................4 1.1.1 Transformation de la DSI des entreprises............................4 1.1.2 Pour donner davantage d’autonomie aux développeurs....................4 1.1.3 Faire évoluer son système d’information............................5 1.1.4 Pour que ça fonctionne aussi sur une autre machine......................6 1.1.5 Livre blanc Ubuntu.......................................6 1.2 Définitions concernant l’agilité et le mouvement Devops ........................6 1.2.1 Définition de Devops p.34 Programmez! p.214 janvier 2018.................6 1.2.2 Définition 2, Le Devops pour répondre à l’appel de l’innovation 2018-01-04.........6 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” 7 1.2.3.1 Citations........................................7 1.2.3.1.1 Ne pas prévoir, c’est déjà gémir.......................7 1.2.3.1.2 La vie, c’est comme une bicyclette, il faut avancer pour ne pas perdre l’équilibre..................................7 1.2.4 Devops, intégration et déploiement continus, pourquoi est-ce capital et comment y aller ?..8 1.2.5 Agilité et Devops: Extrait p. 35 de [Programmez!] , N°214, janvier 2018..........9 1.2.6 What is a DevOps Engineer ?..................................9 1.3 Définitions concernant Docker...................................... 10 1.3.1 Définition de Docker sur Wikipedia en français........................ 10 1.3.2 Docker est “agile”........................................ 10 1.3.3 Docker est portable....................................... 10 1.3.4 Docker est sécurisé....................................... 10 1.3.5 Les conteneurs Docker sont plus légers et rapides que les machines virtuelles........ 10 1.3.5.1 Containers....................................... 10 1.3.5.2 Virtual machines (VMs)................................ 10 1.3.5.3 Docker can run your applications in production at native speed ........... 14 1.4 Dossier Docker dans le dossier MISC N°95 de janvier/février 2018.................. 14 2 Installation de docker 15 3 Qui utilise Docker en production ? 17 3.1 Historique................................................ 17 3.1.1 Janvier 2018........................................... 17 3.2 Paypal.................................................. 17 3.2.1 Challenges........................................... 18 3.2.2 Solution............................................. 18 4 docker engine CE (Community Edition) 19 4.1 docker engine versions.......................................... 19 i 4.1.1 docker engine versions..................................... 19 4.1.1.1 Future......................................... 19 4.1.1.2 Versions........................................ 20 4.1.1.2.1 18.09-ce (2018-11-08)........................... 20 4.1.1.2.2 18.06.1-ce (2018-08-21).......................... 20 4.1.1.2.3 18.06.0-ce (2018-07-18).......................... 20 4.1.1.2.4 18.03.1-ce (2018-04-26, 9ee9f40)..................... 20 4.1.1.2.5 17.12.1-ce (2018-02-27).......................... 20 4.1.1.2.6 17.06.0-ce (2017-06-23, 02c1d87)..................... 20 5 Docker compose 21 5.1 Concepts clés............................................... 21 5.1.1 Other definition......................................... 22 5.2 Other links................................................ 22 5.2.1 heroku.............................................. 22 5.3 docker-compose commands....................................... 22 5.3.1 docker-compose commands.................................. 22 5.3.1.1 docker-compose help................................. 22 5.3.1.2 docker-compose build................................. 24 5.3.1.2.1 docker-compose -f docker-compose.yml build django........... 24 5.3.1.3 docker-compose ps.................................. 24 5.3.1.4 docker-compose up.................................. 24 5.4 docker-compose for production..................................... 26 5.4.1 Docker compose in production................................. 26 5.4.1.1 Articles........................................ 26 5.4.1.1.1 Simple continuous deployment with docker compose, docker machine and Gitlab CI (2017-06-26)........................... 26 5.5 docker-compose TIPS.......................................... 26 5.5.1 docker-compose tips...................................... 26 5.5.1.1 docker-compose tips 2018............................... 26 5.5.1.1.1 3 Docker Compose features for improving team development workflow. 27 5.6 docker-compose versions......................................... 29 5.6.1 docker-compose versions.................................... 29 5.6.1.1 Versions........................................ 29 5.6.1.1.1 docker-compose 1.22 (2018-07-18)..................... 29 5.6.1.1.2 docker-compose 1.21 (2018-04-09)..................... 30 5.7 Exemples................................................. 30 5.7.1 Quickstart: Compose and Django............................... 30 5.7.1.1 Overview of Docker Compose............................ 31 5.7.1.2 Introduction...................................... 32 5.7.1.3 Define the project components............................ 32 5.7.1.3.1 mkdir django_app.............................. 32 5.7.1.3.2 Create a Dockerfile............................. 32 5.7.1.3.3 Create a requirements.txt in your project directory............ 33 5.7.1.3.4 Create a file called docker-compose.yml in your project directory.... 34 5.7.1.4 Create a Django project................................ 35 5.7.1.4.1 cd django_app................................ 35 5.7.1.4.2 docker-compose run web django-admin.py startproject composeexample . 35 5.7.1.5 Connect the database................................. 37 5.7.1.5.1 Edit the composeexample/settings.py file.................. 37 5.7.1.5.2 django_app> docker-compose up...................... 37 5.7.1.5.3 docker ps.................................. 39 5.7.1.5.4 docker-compose down........................... 41 5.7.1.6 Compose file examples................................ 41 ii 5.7.1.6.1 Compose file examples........................... 41 5.7.2 gitlab ARM........................................... 43 5.7.2.1 Overview of Docker Compose............................ 43 6 compose-file 45 6.1 Versions................................................. 45 6.1.1 3.7................................................ 45 6.1.2 3.6................................................ 46 7 Bonnes pratiques Docker 47 7.1 actu.alfa-safety.fr............................................. 47 7.2 Best practices for writing Dockerfiles.................................. 47 7.2.1 9-pillars-of-containers-best-practices.............................. 48 7.3 Best practices for writing Dockerfiles from Nick Janetakis....................... 48 7.3.1 Docker Best practices from Nick Janetakis........................... 48 7.3.1.1 Dockerfile....................................... 49 7.3.1.2 docker-compose.yml.................................. 49 7.3.1.3 .dockerignore..................................... 49 7.3.1.4 Example Apps for Popular Web Frameworks..................... 49 7.3.1.5 Flask example..................................... 50 7.3.1.5.1 Flask Dockerfile............................... 50 7.3.1.5.2 .env file................................... 50 7.3.1.5.3 Flask docker-compose.yml......................... 50 7.3.1.5.4 hello/app.py................................. 51 7.3.1.5.5 .gitignore.................................. 51 8 Docker machine 55 9 Docker swarm 57 9.1 Docker swarm articles.......................................... 57 9.1.1 Docker swarm articles 2018.................................. 57 9.1.1.1 Only one host for production environment. What to use: docker-compose or single node swarm ?..................................... 57 9.1.1.1.1 Question................................... 57 9.1.1.1.2 Response.................................. 58 10 Docker commands 59 10.1 docker help................................................ 60 10.2 docker attach............................................... 61 10.3 docker build............................................... 62 10.3.1 Description........................................... 62 10.3.2 docker build –no-cache..................................... 62 10.4 docker commit.............................................. 62 10.5 docker cp................................................. 62 10.6 docker diff................................................ 63 10.7 docker exec................................................ 63 10.8 docker export............................................... 63 10.9 docker history.............................................. 63 10.10 docker inspect.............................................. 63 10.11 docker images.............................................. 64 10.12 docker kill................................................ 64 10.13 docker login............................................... 64 10.14 docker logs................................................ 64 10.14.1 Description........................................... 64 10.15 docker ps................................................. 65 iii 10.15.1 docker ps –filter......................................... 65 10.16 docker pull................................................ 65 10.17 docker rename.............................................. 65 10.18 docker run................................................ 65 10.18.1 detach-keys..........................................