docker run sed ne fonctionne pas
Je suis en approche pour Docker. J'ai créé une image debootstraping Debian Jessie et je tiens à ajouter le contrib
section à APT fichier sources.
/etc/apt/sources.list
contenu sont:
$ docker run some/image cat /etc/apt/sources.list
deb http://debian.fastweb.it/debian jessie main
deb http://debian.fastweb.it/debian jessie-updates main
deb http://security.debian.org/jessie/updates main
Je veux qu'ils soient:
deb http://debian.fastweb.it/debian jessie main contrib
deb http://debian.fastweb.it/debian jessie-updates main contrib
deb http://security.debian.org/jessie/updates main contrib
Alors, j'ai couru cette commande:
docker run some/image sed -i 's/main/main contrib/g' /etc/apt/sources.list
Qui quitte sans erreurs; mais il n'est pas à jour /etc/apt/sources.list
contenu:
$ docker run some/image cat /etc/apt/sources.list
deb http://debian.fastweb.it/debian jessie main
deb http://debian.fastweb.it/debian jessie-updates main
deb http://security.debian.org/jessie/updates main
OriginalL'auteur mdesantis | 2014-03-13
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas à modifier l'image. Vous avez commencé un conteneur, basé sur l'image. Alors vous avez exécuté votre commande sed et modifié le contenu du fichier. Vérifier
docker ps -a
pour voir l'id du conteneur qui vient de fermer. Si vous utilisezdocker cp
à l'extrait de votre fichier, vous devez voir qu'il a été modifié (en supposant que votre commande sed était ok).Vous pouvez également créer un Dockerfile
et exécuter la nouvelle image
docker run some/new-image
pour obtenir le résultat attendu.Conclusion, vous voulez probablement faire exécuter votre commande sed dans les images d'origine Dockerfile.
sources.list
du récipient dans lequel j'ai exécuté la commande, ils sont mis à jour. J'ai encore à saisir la différence entre une image et un conteneur; pourriez-vous expliquer comment modifier l'image? Pourriez-vous suggérer un flux de travail pour faire ce genre de choses? (un lien vers des ressources serait génial 🙂 )Pas de problème si pas, je vais faire mon chemin 😉
les deux corriger les flux sont les suivants: 1)docker run --> docker commit --> docker run; 2)vous pouvez construire une image à partir de Dockerfile et exécuter le conteneur de l'image.
Regarder le Glossaire officiel de Docker de la documentation: docs.débardeur.io/en/latest/conditions/image
OriginalL'auteur qkrijger