Voici quelques commandes Docker de base :
Voir également :https://github.com/wsargent/docker-cheat-sheet
Installation du dernier environnement Docker sous Linux :
curl -sSL https://get.docker.com/ | sh
Démarrer le terminal docker sous OSX
bash --login '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh'
Information : Les noms de conteneurs sans '/' dans le nom font référence à des modèles de conteneurs publics de base
Les noms de conteneurs avec un '/' font référence à des conteneurs utilisateur au format :nom d'utilisateur/BasicContainer
Les noms de conteneurs avec un ':' font référence à une balise qui est normalement utilisée comme subversion des conteneurs de base/utilisateur
Rechercher des images dans le référentiel Internet Dockerdocker search ubuntu
Téléchargez une image docker depuis Internet vers le référentiel localdocker pull ubuntu:14.04
Répertorier les images docker locales :docker images
Exécutez une image créée par vous-même (myname/ubuntu:tmpl_1) en arrière-plan en donnant au conteneur le nom MyUbuntudocker run -itd --name=MyUbuntu myname/ubuntu:tmpl_1
Attachez-vous à un conteneur pour y travailler (appuyez 2 x Entrée pour obtenir bash par la suite)docker attach MyUbuntu
Pour sortir d'un conteneur sans qu'il soit automatiquement arrêté :CTRL-P + CTRL-Q
Lorsqu'un ^D (ou une commande de sortie) est émis dans un bash de conteneur, le conteneur est alors arrêté. Pour le redémarrer, par exemple.docker start MyUbuntu
Lister les conteneurs en cours d'exécutiondocker ps
Liste de tous les conteneurs docker (en cours d'exécution et arrêtés)docker ps -a
Remarques sur l'exécution des conteneurs :docker run -t -i
→ peut être détaché avec ^P^Q et rattaché avec docker attachdocker run -i
→ ne peut pas être détaché avec ^P^Q ; perturbera l'exécution de stdindocker run
→ ne peut pas être détaché avec ^P^Q ; peut client SIGKILL ; peut se rattacher avec docker attach
RÉSOLUTION DES PROBLÈMES :
1) Si vous obtenez ce message d'erreur après avoir exécuté une commande docker :Error response from daemon: client is newer than server (client API version: x.xx, server API version: y.yy)
Exécutez simplement la commande suivante pour synchroniser leurs versions :docker-machine upgrade
Création d'une nouvelle image Docker locale à partir d'une image tirée publique (Internet)
#### La méthode COMMIT ####
Exécutez le conteneur en fonction de cette imagedocker run -t -i ubuntu:14.04 /bin/bash
Remarque :Rappelez-vous l'ID de conteneur qui se trouve dans l'invite bash (nécessaire pour en créer un nouveau basé sur celui-ci)
par exemple. root@ba7cbe2cd3ce :/# (ba7cbe2cd3ce étant l'ID du conteneur)
Installez les packages logiciels souhaités (apt-get update &&apt-get install…. )
ex. apt-get update &&apt-get -y upgrade; apt-get install mc ssh fail2ban nmap ngrep iftop iotop htop
Lorsque vous avez terminé, arrêtez le conteneur en vous déconnectant de bash avecexit or ^D
Maintenant, enregistrez la nouvelle image localement :docker commit -m "My special container template" -a "My Name" ba7cbe2cd3ce myname/ubuntu:v001
Cela enregistrera localement le conteneur modifié en tant que nouvelle image nommée :myname/ubuntu:v001
À vérifier :docker images
#### La méthode 'Dockerfile'
Créez un répertoire dans lequel vous créez un fichier spécial appelé Dockerfile
où les instructions sur la façon de construire la nouvelle image seront écrites.mkdir ubuntu_template_001
cd ubuntu_template_001
touch Dockerfile
mcedit Dockerfile
————– Contenu —————-# This is a comment
FROM ubuntu:14.04
MAINTAINER My Name <mmyname @mydomain.com>
RUN apt-get update && apt-get install -y mc ssh fail2ban nmap ngrep iftop iotop htop
RUN apt-get -y install postfix
– Enregistrez le fichier puis exécutez la commande suivante pour créer l'image :docker build -t myname/ubuntu_template_001 .
Remarque :Le '.' à la fin de la commande indique où se trouve le Dockerfile
Vous serez présenté avec toutes les sorties de l'installation et l'ID de l'image à la toute fin comme suit :
—> 8578743d7b30
– Nous examinons toutes les images créées :docker images
Résultat :
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 8578743d7b30 3 minutes ago 290 MB
myname/ubuntu v001 9bc5a639a1de 20 minutes ago 318.6 MB
– Nous voyons que l'image avec l'ID 8578743d7b30 n'a pas de nom ni de balise.
Maintenant, nous lui donnons un nom :tagdocker tag 8578743d7b30 myname/ubuntu:v002
– Vérifiez à nouveau la liste des images :docker images
Résultat : REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myname/ubuntu v002 8578743d7b30 16 minutes ago 290 MB
myname/ubuntu v001 9bc5a639a1de 33 minutes ago 318.6 MB
– Nous pouvons maintenant exécuter un conteneur basé sur cette nouvelle imagedocker run -it --name "Server2" myname/ubuntu:v002 bash -c 'service ssh start ; ifconfig eth0; bash'
Supprimer une image du dépôt localdocker rmi michel/ubuntu:v002
Suppression d'un conteneur du système docker localdocker rm ContainerName
oudocker rm ContainerID
Pour exécuter un programme dans un conteneur en cours d'exécution mais non attaché :docker exec -t -i ContainerName bash -c 'command'