Installation
Installation de Docker via Aptitude:
sudo apt-get update
sudo apt-get install lxc-docker
Installation de Docker via le script d’installation officiel:
wget -O dockerinstall.sh https://get.docker.com
sh ./dockerinstall.sh
Information
Afficher les informations sur la version de Docker installée:
docker version
Obtenir la liste des commandes du client Docker:
docker help
Obtenir de l’aide sur les options d’une commande:
docker help nom_de_la_commande
Docker Hub
Connexion à un compte Docker Hub:
docker login
Déconnexion du compte Docker Hub:
docker logout
Récupérer une image
Récupérer une image sans la lancer:
docker pull nom_de_l_image
Récupération d’une image Ubuntu dans sa dernière version:
docker pull ubuntu:latest
Rechercher une image Nginx avec au moins 5 étoiles:
docker search --stars=5 nginx
Envoyer d’une image
Envoyer une image locale sur le registre Docker Hub:
docker push nom_image
Envoyer une image sur un registre privé:
docker push localhost:88/ubuntu
Dépôt de l’image depuis une autre machine (host=starmate):
docker push starmate:5000/ubuntu
Sauvegarde et restauration
Export d’une image sous forme d’archive:
docker save -o fichier.tar nom_image
Import d’une archive d’image:
docker load -i fichier.tar
Lancement de conteneur
Démarrer un conteneur arrêté:
docker start nom_image
Redémarrer un conteneur en cours:
docker restart nom_image
Redémarrer un conteneur en spécifiant la période de grâce:
docker restart -t 20 nom_image
Démarrer le conteneur de test Hello World:
docker run hello-world
Démarrer un conteneur en mode interactif:
docker run -i -t ubuntu
Démarrer sans option d’un conteneur:
docker run ubuntu
Démarrer un conteneur avec un nom donné:
docker run --name=nom_donné nom_image
Démarrer un conteneur avec une commande donnée:
docker run nom_de_l_image commande_à_exécuter
Démarrer un conteneur en ajoutant une variable d’environnement:
docker run -e=nom_variable=valeur nom_image
ou
docker run -e nom_variable=valeur nom_image
Démarrer un conteneur en injectant une des variables d’environnement de la machine hôte:
docker run -e=nom_variable image_à_instancier
Démarrer un conteneur en injectant des variables d’environnement stockées dans un fichier:
docker run --env-file=nom_fichier nom_image
Démarrer un conteneur en modifiant son hostname:
docker run -h hostname_voulu
Démarrer un conteneur en montant un dossier dans le conteneur depuis la machine hôte en RO (read only):
docker run -v dossier_sur_hote:dossier_sur_l_image:ro nom_image
Démarrer un conteneur en mode détaché:
docker run -d nom_image
Démarrer un conteneur d’un registre privé en localhost (port 5000 vers 88):
docker run -d --name starmate -p 88:5000 starmate:2.0
Démarrer un conteneur d’un registre privé sur le réseau local (IPhost=starmate dans tous les fichiers hosts):
docker run -d --name starmate -p 5000:5000 starmate:2.0
Démarrer un conteneur du registre privé en réseau local (IPhost= starmate dans tous les fichiers hosts) en montant un dossier local de la machine host:
docker run -d --name starmate -p 5000:5000 -v /dossier_machine_host:/dossier_image_starmate starmate:2.0
Démarrer et supprimer un conteneur dès la sortie du processus:
docker run --rm hello-world
Connexion à un conteneur
Connexion à un conteneur en tant que root avec bash:
docker exec -u root -it ID_conteneur bash
Suppression de conteneur
Supprimer un conteneur arrêté:
docker rm loving_lovelace
Supprimer un conteneur de manière forcée:
docker rm -f nom_conteneur
Supprimer tous les conteneurs:
docker rm `docker ps -a -q`
Suppression d’une image
Supprimer une image:
docker rmi nom_de_l_image
Supprimer plusieurs images:
docker rmi image1 image2 imageN
Arrêt d’un conteneur
Arrêter un conteneur:
docker stop nom_image
Envoyer un signal à un conteneur:
docker kill -s code_du_signal nom_image
Monitoring
Lister les conteneurs en cours de fonctionnement:
docker ps
Lister tous les conteneurs:
docker ps -a
Lister les images Docker présentes sur la machine locale:
docker images
Lister les modifications d’un conteneur par rapport à son image de lancement:
docker diff identifiant_du_conteneur
Visualiser les logs d’un conteneur:
docker logs nom_image
Explorer les processus d’un conteneur:
docker top nom_image
Construction d’un conteneur
Persister l’état d’un conteneur en une nouvelle image:
docker commit identifiant_du_conteneur nom_de_l_image
Tag
Tag d’un conteneur:
docker build -t identifiant_du_conteneur starmate:1.0
Modifier le tag d’un conteneur:
docker tag starmate:1.0 starmate:latest
Forcer le tag d’un conteneur (si tag déjà existant):
docker tag -f starmate:1.0 starmate:latest