Démarrer avec docker

Mis à jour : 10/01/2025 Danny
English Version

Docker est une plateforme pour lancer des applications dans des containers.

Vous pouvez exécuter vos applications sur n'importe quel système.

Il facilite le déploiement, l'évolutivité et la gestion des services.

Docker est devenu un outil incontournable pour les développeurs et les équipes DevOps.

Démarrer avec Docker
guide alt

Si vous n'avez pas le temps de lire ce guide en entier,
téléchargez le maintenant


Comment faire

Dans ce simple tutoriel un résumé de quelques commandes essentielles.

  • Installation
  • Commandes
  • Images
  • Containres
  • Dockerfile
  • Example Hello

Documentation

Site officiel
https://www.docker.com/

Procédures d'installation
https://docs.docker.com/install/linux/docker-ce/ubuntu/

Recherche des images sur docker hub
https://hub.docker.com/


Installation


# Installation
sudo apt-get --yes install docker.io

# Désinstallation des anciennes versions
sudo apt-get remove docker docker-engine docker.io containerd runc --yes

# Test de l'installation
sudo docker run hello-world

# Gestion des droits
sudo usermod -aG docker ${USER}

# Redémarrage pour prise en compte des droits
reboot

Commandes


# Indique la version de docker
sudo docker version

# Redémarrage du service docker
sudo service docker restart

# Liste des images
docker images
docker image ls

# Liste des containers
docker ps -a
docker container ls

# Efface toutes les images
docker rmi $(docker images -q)

# Efface tous les containers
docker rm $(docker ps -a -q)


Images


# Recherche une image
sudo docker search nginx

# Rapatrie une image
docker pull nginx

# Rapatrie une image dans une version spécifique
docker pull nginx:1.17.9
docker pull nginx:latest
docker pull node:12.16.1

# Supprime une image avec image_id
docker rmi image_id

# Supprime une image avec image_id en mode forcé
docker rmi -f image_id

# Renomme une image contenant image_id 0a
docker tag 0a new-name:tag-name

Containers

Options

  • -d : daemon
  • -p : publish
# Execute un container nommé frontend à partir d'une image nginx
sudo docker pull nginx:1.17.9
sudo docker run --name frontend -d -p 80:80 nginx:1.17.9

# Stoppe un container nommé frontend
docker stop frontend

# Efface un container nommé frontend
docker rm frontend

# Redémarre un container
docker restart frontend

# Efface un container nommé frontend en mode forcé
docker rm frontend -f         

# Renomme un container old-name en un container new-name
docker rename old-name new-name

# Visualise les logs
docker logs frontend

# Entre dans le conteneur en mode execution
docker exec -it frontend /bin/bash

Dockerfile


.dockerignore
.git
*Dockerfile*
*docker-compose*
node_modules
Dockerfile
FROM nginx:1.17.9
LABEL author="www.ganatan@com"
COPY /dist/angular-starter/browser /usr/share/nginx/html
# Création d'une image à partir du dockerfile par défaut
# Nom nom-image , Tag 1.0.0
docker build -t nom-image:1.0.0 .

# Création d'une image à partir du fichier dockerfile nommé Dockerfile-specific
docker build -t nom-image:1.0.0 -f Dockerfile-specific .

# Exécution du container sur le port 5000
docker run --rm  --name nom-container -d -p 5000:80 nom-image:1.0.0

# Entre dans le conteneur en mode execution
docker exec -it nom-container /bin/bash

Créer une image Hello


hello/Dockerfile
FROM busybox:latest
ADD index.html /www/index.html
EXPOSE 4000
CMD httpd -p 4000 -h /www; tail -f /dev/null
hello/index.html
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, user-scalable=no">
  <title>titre de notre page</title>
</head>

<body>
  Page Hello
</body>

</html>
# se positionner dans le répertoire hello contenant le fichier Dockerfile
# Crée une image avec un nom aléatoire à partir de l'image busybox
docker build .

# Crée une image hello:latest à partir de l'image busybox
docker build -t helloimage:1.0.0 .

# Execute le container  mais port 4000 non visible
docker run --rm -d helloimage:1.0.0

# Execute le container  mais port 5000 visible en mode non daemon
docker run --rm -p 5000:4000 helloimage:1.0.0

# Execute le container  mais port 5000 visible en mode daemon
docker run --rm -d -p 5000:4000 helloimage:1.0.0

# Execute le container  avec le nom hellocontainer
docker run --rm  --name hellocontainer -d -p 5000:4000 helloimage:1.0.0

Docker registry

Créer une image Docker sur le Docker Hub.
La rendre accessible de façon publique.

# Connection au docker Hub
docker login -u "my_name" -p "my_password" docker.io

# Tag notre image
docker tag helloimage:1.0.0 my_name/angular-example-starter:1.0.0

# Envoie l'image sur docker Hub
docker push my_name/angular-example-starter:1.0.0

# Récupère l'image sur son poste à partir de Docker Hub
docker pull my_name/angular-example-starter:1.0.0

# Exécute l'image dans un container
docker run --rm --name hellocontainer -d -p 80:4000 my_name/angular-example-starter:1.0.0

Volumes


# Création d'un volume
docker volume create volume-test

# Liste des volumes
docker volume ls

Comment créer une application From scratch ?

Créez votre compte ganatan

Téléchargez gratuitement vos guides complets

Démarrez avec angular CLI Démarrez avec angular CLI

Gérez le routing Gérez le routing

Appliquez le Lazy loading Appliquez le Lazy loading

Intégrez Bootstrap Intégrez Bootstrap


Utilisez Python avec Angular Utilisez Python avec Angular

Utilisez Django avec Angular Utilisez Django avec Angular

Utilisez Flask avec Angular Utilisez Flask avec Angular

Ganatan site Web avec Angular