Docker - Exécuter des commandes sur un conteneur
Publication : le 03 sept. 2020 - Dernière modification : le 03 sept. 2020
Utiliser Docker permet entre autre de tester des commandes ou des outils sur des systèmes sans les installer ni créer de machine virtuelle. C'est rapide, simple et efficace.
Prérequis
- Système d'exploitation Linux
- Service Docker installé sur le système
- Avoir les droits root ou avoir fait en sorte que Docker soit utilisable sans droits root.
- Connexion à internet
Récupérer une image Docker en local
Pour créer un conteneur, nous devons posséder une image Docker. Le plus simple est de la télécharger depuis le Registry
officiel. Ici, nous récupérons une image ubuntu 18.04
.
$ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
f08d8e2a3ba1: Pull complete
3baa9cb2483b: Pull complete
94e5ff4c0b15: Pull complete
1860925334f9: Pull complete
Digest: sha256:05a58ded9a2c792598e8f4aa8ffe300318eac6f294bf4f49a7abae7544918592
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04
Afficher la liste des images locales disponibles
Afin d'afficher les images Docker disponibles localement, il suffit d'exécuter la commande suivante :
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 6526a1858e5d 2 weeks ago 64.2MB
Créer un conteneur qui ne se termine jamais
Du fait que nous souhaitons tester des choses sur l'image Docker, nous souhaitons créer un conteneur de cette image. Cependant, par défaut, Docker créera le conteneur et le stoppera rapidement du fait que nous n'avons rien à faire tourner indéfiniment dessus. Heureusement, il existe une commande permettant de forcer à garder le conteneur actif, telle que :
$ docker run -dt ubuntu:18.04 bash
6715a75e59cac46f6f6fae5faad5672e3d87be6236d424a78d05ed30b8845bc3
Nous obtenons en sortie l'ID du conteneur.
Lister les conteneurs actifs
Afin de s'assurer que le conteneur précédement lancé tourne toujours, il suffit de lancer la commande listant tous les conteneurs actuellement actifs :
$ docker container ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6715a75e59ca ubuntu:18.04 "bash" About a minute ago Up About a minute gracious_elgamal
Dans la colonne CONTAINER ID
, nous retrouvons l'ID de notre conteneur.
Copier un fichier dans un conteneur
Si nous souhaitons copier un fichier dans le conteneur, il suffit d'exécuter la commande suivante :
# docker cp <mon fichier> <conteneur ID>:<chemin ou deposer le fichier>/<mon fichier>
$ docker cp myscript.sh 6715a75e59ca:/home/myscript.sh
Se connecter au conteneur
Pour exécuter des commandes sur le conteneur, il faut s'y connecter :
$ docker exec -it 6715a75e59ca bash
root@6715a75e59ca:/#
Nous sommes alors dans le conteneur. Nous pouvons maintenant travailler et faire nos tests.
Par exemple :
root@6715a75e59ca:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
Enjoy.
Stopper un conteneur
Attention, stopper le conteneur vous fera perdre tous les travaux et modifications effectués dans celui-ci. Pensez à bien récupérer vos données avec la commande docker cp <src> <dst>
.
Une fois que nos travaux et/ou nous tests sont terminés, nous pouvons stopper le conteneur.
$ docker stop 6715a75e59ca