Docker en bref

Présentation et explications des principales commandes de Docker

Opérations sur les images

Obtenir une image

Pull
docker pull <nom image>
Build
build  <Path | url>

Construire une image à partir d’un dockerfile.

On peut construire l’image avec un tag choisi à l’avance avec l’option -t

docker build --tag exemple/test .

Lorsqu’on lancera la commande, celle-ci affichera à la fin si tout s’est bien passée

Successfully tagged exemple/test:latest

Erreurs possible :

COPY failed: forbidden path outside the build context: ../../src ()*

Source intéressante si vous avez cette erreur : https://stackoverflow.com/questions/27068596/how-to-include-files-outside-of-dockers-build-context

Affichage et suppression

Les images disponibles peuvent être listées avec :

docker images

Il est aussi possible de supprimer une image :

docker image rm <nom image ou ID >

Il est important de régulièrement supprimer les images non utilisées car celles-ci prennent vite beaucoup de place sur le système hôte.

Exécuter un container (run | exec)

run

docker run <image>

Permet d’exécuter un container à partir d’une image. Si on exécute plusieurs fois la commande run, il y aura alors plusieurs containeurs de crées, tous avec le même état initial.

  • Lors de la création du Dockerfile, on peut préciser ce que doit exécuter le container avec CMD
CMD ["java", "-jar", "/opt/app/monProgramme.jar"]

Ici lorsque l’utilisateur fait run, cela exécutera la commande java -jar opt/app/monProgramme.jar et par conséquent le programme.

  • On peut exécuter un container en arrière-plan avec le flag -d
docker run -it <image> /bin/bash

Permet de démarrer un container en obtenant une invite de commande dessus.

exec

docker exec -it le_container /bin/bash

Exécuter une commande à l ‘intérieur d’un containeur déjà en exécution.

Ici, on ouvre un shell

Debug

Il est possible d’afficher les logs du container avec la commande logs

docker logs <nom container>

Opérations sur les containeurs

Obtenir l’IP d’un conteneur

docker ps

Ensuite son ip

docker inspect <nom conteneur> | grep IPAddress

Port mapping

Il est aussi possible de faire du port mapping.

Par exemple, ici le port 80 du conteneur sera redirigé sur le port 9090 de localhost.

Ainsi, il sera possible d’accéder au serveur depuis l’hôte avec l’adresse : 127.0.0.1:9090

docker run -p 9090:80 serveur/apache_php

Copier des fichiers

Pour copier des fichiers de votre hôte vers le conteneur, vous pouvez utiliser la commande cp.

docker cp  dossier ece6be770055:/home/test

  • dossier correspond au path de votre dossier. Ici le dossier se trouvait à l’endroit où la commande était lancée.
  • ece6be770055 correspond à l’id ou le nom de votre conteneur
  • /home/test correspond au path dans le conteneur

Créer un volume

Les volumes, option -v, permettent de connecter un dossier de la machine hôte au docker.

Exemple :

docker run -ti -v "$PWD/site":/usr/share/nginx/ -d -p 8080:80 --name
projet-docker --hostname <hostname>

Définir des variables d’environnement

On peut définir des variables d’environnements au moment du run avec le flag -e.

On peut ainsi transmettre dynamiquement des informations au conteneur

Faire le ménage

docker container kill $(docker ps -q)

Permet de tuer tous les containers en cours d’exécution

docker system prune

Permet de supprimer les conteneurs qui ne sont pas listés. Typiquement ceux qui apparaissent quand vous faite ps -a mais qui ne s’affichent pas avec la commande ps simple

Sources

You might also enjoy