GithubHelp home page GithubHelp logo

tuto-docker's Introduction

Tutoriel Docker

👋 Bienvenue sur ce tutoriel à la découverte de Docker. Retrouvez la vidéo sur la chaîne..


📖 Terminologie

Image : Modèle et dépendances à partir duquel sera créé un ou des containers.

Container : Processus et toute ses dépendances virtuellement isolé

Dockerfile : Liste de commandes pour créer une image (voir section Dockerfile).

Docker deamon : Processus Docker en arrière plan qui gère images et containers.

Registry : Lieu d'échange et de stockage d'images (exemple : Docker Hub).

Bind-Mount : Système de persistance des données. Fait pointer un dossier du container vers un fichier ou dossier de l'hôte, vers l'extérieur du container.


💻 Commandes

Structure d'une commande

docker <catégorie> <commande> <options>

Naviguer

docker 
// Liste les commandes et les familles de commande

docker system info
// Affiche informations au sujet du système

docker image ls 
// Liste les images (ou 'docker images')

docker image history myImage:0.0.0
// Voir les différentes "couches" qui constituent l'image

docker container -a ls 
// Liste les containers, même inactif (ou 'docker ps -a')

Executer

docker pull hello-world
// Télécharge une image depuis docker-hub

docker create hello-world
// Crée un container depuis une image

docker start myContainer
// Démarre un container arrêté

docker run hello-world
// Raccourci 'docker pull' && 'docker create' && 'docker start'

docker exec 
// Execute une commande dans un container

docker run -it --rm ubuntu bash
// Télécharge et lance ubuntu, execute bash interactif, supprime container aprés exécution
// -it = --interactive + --tty

Volume

docker volume create pgdata
// Crée un volume

docker run -v pgdata:/var/lib/postgresql/data postgres
// Fait persister données du container du dossier data dans volume pgdata

docker run --mount type=bind,source=c:/pgdata,target=/var/lib/postgresql/data postgres
// Fait persister données avec bind-mount 

Arrêter / Supprimer

docker container stop myContainer
// Arrête container

docker rm [container id]
// Supprime container

docker rmi [image name]
// Supprime image

docker system prune
// Supprime container, images, réseaux et volume inutilisés

📁 Dockerfile

Etapes

  1. Créer fichier Dockerfile & .dockerignore
  2. Décrire étape de création de l'image (utiliser référence)
  3. docker build -t myname/myimage:0.1 .

Référence

FROM ubuntu:18.04
# Image de base

LABEL my.image.version="0.0.1"
# Donner un nom à votre image

RUN npm install
# Exécuter commandes

WORKDIR /usr/src/app
# Crée dossier si n'existe pas, cd dedans

COPY . /app
# Copie fichiers locaux dans container. Source | Destination

VOLUME /data
# Espace de stockage amener à être modifier (mount point)

EXPOSE 80
# Quel port du container doit être ouvert

ENV MY_VAR="Example" 
# Variable d'environnement

ENTRYPOINT ["cmd", "param1", "param2"]
# Commande principale, mode exec, ne démarre pas le shell

CMD ["cmd", "param1", "param2"]
# Commande optionnel, modifiable avec 'docker run image CMD'

🕸 docker-compose

Etapes

  1. Créer fichier docker-compose.yml
  2. Décrire étapes de création du setup
  3. Démarrer l'environnement : docker-compose up
  4. Le fermer : docker-compose down

Exemple

services:
    app:
      build: .
      depends_on:
        - postgres
      environment:
          DATABASE_URL: postgres://user:pass@postgres:5432/db
          NODE_ENV: development
      ports:
        - "3000:3000"
  
    postgres:
      image: postgres:alpine
      environment:
        POSTGRES_PASSWORD: postgres
      volumes:
          - data:/var/lib/postgresql/data
  
volumes:
    data:

tuto-docker's People

Contributors

antoine-flo avatar

Stargazers

Jerome Marel avatar Francisco MAMBO avatar Cheikhou DIOKOU avatar  avatar Yousra jnahi avatar Adnane Drief avatar Medhi avatar  avatar Ryan Kadri avatar  avatar  avatar Lazare Fortune avatar Bima-Niger avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.