Docker a été largement adopté et constitue un excellent moyen de déployer une application dans le cloud (ou une autre infrastructure prête pour Docker). Il est également utile pour le développement local. Vous pouvez démarrer rapidement des applications complexes, développer de manière isolée et avoir toujours de très bonnes performances.
Voici les commandes les plus importantes pour utiliser efficacement Docker dans votre entreprise quotidienne.
Lister toutes les images Docker
docker images

Dans mon cas, j'ai 3 images installées:
- MySQL, version 8.0.19, une balise comme dernière version
- et Cassandra avec la dernière version.
Pour obtenir plus d'informations sur une image, vous pouvez l'inspecter:
docker inspect mysql:latest

Cela renverra une liste d'informations. Vous pouvez également utiliser l'ID d'image pour obtenir les informations:
docker inspect 3a5e53f63281
La sortie peut être écrasante. Par conséquent, il existe une option pratique pour filtrer certaines informations:
docker inspect --format='{{.RepoTags}} {{.Config.Image}}' 3a5e53f63281

Supprimer les images Docker
Une seule image peut être supprimée par:
docker rm mysql:latest

Dans mon cas, l'image est toujours balisée avec mysql: 8.0.19 . Par conséquent, pour le supprimer complètement, je dois également supprimer une autre balise de version:
docker rm mysql:8.0.19

Pour supprimer l'image directement, il est plus facile de supprimer l'image par identifiant d'image:
docker image rm 3a5e53f63281 -f

L'option -f force l'exécution, sinon vous obtiendrez une erreur si l'image est référencée par plus d'une balise.
Démarrer une image Docker
Une image peut être démarrée au premier plan par:
docker run cassandra
Si l'image n'existe pas, elle sera téléchargée. Vous pouvez arrêter l'exécution en appuyant sur CTRL + C . Vous pouvez également l'exécuter en arrière-plan en ajoutant l' option -d :
docker run -d mysql

Si le conteneur est démarré en arrière-plan, vous recevez l'ID de conteneur.
Par défaut, le conteneur s'exécute de manière isolée. Par conséquent, vous ne pourrez pas communiquer avec lui et aucun fichier n'est stocké dans votre répertoire actuel.
Transférer les ports d'un conteneur
Vous pouvez transférer des ports à l'aide de l' option -p vers, par exemple, une page exposée à partir de votre conteneur:
docker run -p 8080:80 nginx
Ce conteneur NGINX expose un serveur Web sur le port 80. En utilisant -p 8080: 80, le port local 8080 est transféré vers le port de conteneur 80.
Connectez-vous à un conteneur
Parfois, il est utile de se connecter à un conteneur. Cela n'est possible que si le conteneur a un shell installé. Vous obtiendrez une erreur si ce n'est pas le cas.
Tout d'abord, démarrez le conteneur détaché et donnez-lui un nom:
docker run -d --name my_container nginx
Cela renverra un ID de conteneur. Vous pouvez maintenant exécuter un shell dans le conteneur et y attacher votre entrée et votre sortie en utilisant les options -i et -t :
docker exec -it my_container bash
Au lieu du nom du conteneur, vous pouvez également utiliser l'ID de conteneur renvoyé pour toutes les opérations suivantes. Parfois, bash n'est pas disponible. Par conséquent, vous pouvez également essayer de lancer un shell de base:
docker exec -it my_container sh
Répertorier les conteneurs en cours d'exécution
Après avoir démarré un conteneur, vous pouvez voir tous les conteneurs en cours d'exécution s'exécuter:
docker ps

En ajoutant -a , les conteneurs sortis seront également listés:
docker ps -a

Partager un dossier local avec un conteneur
Sometimes it is useful to sync files between the container and the local filesystem. You can do it by running a container and using the -v option. On Linux and macOS, you can share a local temporary folder with a container by:
docker run --name=my_container -d -v $(pwd)/tmp:/var/log/nginx -p 8080:80 nginx
On windows you can run:
docker run --name=my_container -d -v %cd%/tmp:/var/log/nginx -p 8080:80 nginx
Stop running containers
It is possible to stop a running container by:
docker stop my_container
Stopping a container stops all processes but keeps changes within the filesystem.
Start a stopped container
A stopped container can be started by:
docker start my_container
Remove a container
To remove a stopped container, you can execute:
docker rm my_container
To stop and remove the container in one command, you can add the force option -f.
docker rm -f my_container
Create a volume and share it with multiple containers
An independent volume named SharedData can be created by:
docker volume create --name SharedData docker run --name=my_container -d -v SharedData:/var/log/nginx -p 8080:80 nginx docker run --name=my_container_2 -d -v SharedData:/var/log/nginx -p 8080:80 nginx
Both containers will have a shared folder, and files will be synced between both containers.
Remove a volume
To remove a volume, all containers that use the volume need to be removed.
docker rm -f my_container docker rm -f my_container_2 docker volume rm SharedData
Remove stopped containers and unused images
A safe tidy-up command is:
docker system prune -a
Remove all unused volumes
All unmounted volumes can be removed by:
docker volume prune
Conclusion
Creating containers, logging into containers, forwarding ports, and sharing volumes are the most important commands of your Docker command line interface. They build the foundation of systems like Kubernetes and enable us to create and run applications in isolation.
I hope you enjoyed the article. If you like it and feel the need for a round of applause, follow me on Twitter.
I am a co-founder of our revolutionary journey platform called Explore The World. We are a young startup located in Dresden, Germany and will target the German market first. Reach out to me if you have feedback and questions about any topic.
Happy Docker exploring :)
References
- Docker command line documentation
//docs.docker.com/engine/reference/commandline/docker/