Modification de fichiers dans un conteneur en cours d'exécution
Dans cette étape, nous allons apprendre à modifier des fichiers dans un conteneur en cours d'exécution. Cela peut être utile à des fins de débogage, comme modifier des fichiers de configuration ou ajouter des scripts temporaires à un conteneur déjà actif.
Nous commencerons par exécuter un conteneur simple basé sur l'image ubuntu
, plus complète que alpine
et incluant un shell et des utilitaires courants.
docker run -d --name my-ubuntu ubuntu sleep 3600
Cette commande exécute un conteneur Ubuntu en mode détaché (-d
) et le maintient actif pendant une heure avec la commande sleep 3600
. Nous avons nommé le conteneur my-ubuntu
pour faciliter sa référence.
Maintenant, utilisons docker exec
pour obtenir un shell à l'intérieur du conteneur en cours d'exécution.
docker exec -it my-ubuntu /bin/bash
Vous devriez maintenant être dans le shell bash du conteneur my-ubuntu
. L'invite de commande changera pour indiquer que vous êtes dans le conteneur.
À l'intérieur du conteneur, créons un nouveau fichier dans le répertoire /tmp
.
echo "This is a test file." > /tmp/test_file.txt
Vérifions maintenant que le fichier a bien été créé et contient le bon contenu.
cat /tmp/test_file.txt
Vous devriez voir le message This is a test file.
. Cela confirme que nous avons pu créer et écrire dans un fichier à l'intérieur du conteneur en cours d'exécution.
Pour quitter le shell du conteneur, tapez simplement exit
.
exit
Vous êtes maintenant de retour dans le terminal de votre VM LabEx.
Nous pouvons également copier des fichiers vers et depuis un conteneur en cours d'exécution en utilisant la commande docker cp
. Créons un fichier sur notre VM LabEx et copions-le dans le conteneur.
D'abord, créez un fichier nommé local_file.txt
dans votre répertoire ~/project
.
echo "This file is from the host." > ~/project/local_file.txt
Maintenant, copiez ce fichier dans le répertoire /tmp
du conteneur my-ubuntu
.
docker cp ~/project/local_file.txt my-ubuntu:/tmp/
Le format pour docker cp
est docker cp <chemin_source> <nom_conteneur>:<chemin_destination>
ou docker cp <nom_conteneur>:<chemin_source> <chemin_destination>
.
Vérifions que le fichier a bien été copié dans le conteneur. Reconnectez-vous au shell du conteneur.
docker exec -it my-ubuntu /bin/bash
Dans le conteneur, vérifiez la présence de local_file.txt
dans /tmp
.
ls /tmp/
Vous devriez voir local_file.txt
listé avec test_file.txt
.
Maintenant, affichons le contenu de local_file.txt
dans le conteneur.
cat /tmp/local_file.txt
Vous devriez voir le message This file is from the host.
.
Quittez à nouveau le shell du conteneur.
exit
Enfin, nettoyons le conteneur.
docker stop my-ubuntu
docker rm my-ubuntu
Cette étape a démontré comment modifier des fichiers dans un conteneur en cours d'exécution en utilisant docker exec
pour obtenir un shell et des commandes Linux standard, et comment copier des fichiers entre l'hôte et le conteneur avec docker cp
.