Howto modifier un menu fixe de l'image qui a été créé à partir d'un existant
Basé sur un howto, j'ai créé une nouvelle image basée sur un existant.
maintenant, je n'ai pas un Dockerfile et il se passe des choses, lorsque le conteneur commence
Je ne peux pas changer, c'est à quoi il ressemble pour moi.
Est-il un moyen de modifier les choses qui ont été mis en place dans le Dockerfile de l'image de base que j'ai utilisé ?
par exemple: le conteneur s'exécute un script bash, lorsqu'il démarre, je veux changer cela.
OriginalL'auteur michabbb | 2014-11-24
Vous devez vous connecter pour publier un commentaire.
Pour répondre à vos q: "le conteneur s'exécute un script bash, lorsqu'il démarre, je veux changer ce". Supposons que vous souhaitez exécuter
/script.sh
(partie de l'image) au lieu de la valeur par défaut, vous pouvez instancier un conteneur à l'aide de:Si
script.sh
n'est pas une partie de l'image et/ou vous préférez ne pas avoir à le spécifier explicitement à chaque fois avec--entrypoint
comme ci-dessus, vous pouvez préparer une image qui contient et exécute votre proprescript.sh
:script.sh
en elleCréer
Dockerfile
avec le contenu suivant:docker build -t="myimage" .
docker run myimage
Notes:
--entrypoint
puisque nous avons il était par défaut dans leDockerfile
.OriginalL'auteur sxc731
Si le lancement du conteneur avec la commande à partir du tutoriel échoue, votre image de base la plus probable a présenté un point d'entrée. Toutes les commandes que vous spécifiez pour
docker run
sera ajouté comme options pour le point d'entrée de commande. Ainsi, étant donné un point d'entrée, par exemple, de/usr/bin/somescript
,entraînera le conteneur exécuter
au lieu de
Pour se débarrasser de l'ENTRYPOINT, utilisez le
--entrypoint
option:OriginalL'auteur Harald Albers
Il suffit de créer un nouveau Dockerfile dans un Répertoire vide. Démarrer le Dockerfile avec
où "repo/image" est l'id de l'image que vous utilisez actuellement.
et ajouter vos personnalisations ci-dessous.
De cette façon, vous construire une nouvelle image qui est basé sur une autre image.
En particulier, pour modifier la commande qui s'exécute au démarrage, mettre dans un CMD et/ou le point d'entrée de ligne.
Le Dockerfile contient des instructions pour construire une image.
FROM xxx/yyy
dans un Dockerfile commence avec l'imagexxx/yyy
et plus personnalise. Je pense que "remplacer" ou "ajouter" ne s'applique pas ici.La façon dont je le comprends, un
Dockerfile
est un peu comme unMakefile
, une série d'instructions pour construire une image. Si votreDockerfile
comprendADD
ouCOPY
instructions qui cible les fichiers qui sont déjà contenus dans l'image de base, puis la base des fichiers de n'obtenir "remplacé" ("couches" est sans doute plus précis).OriginalL'auteur Günter Zöchbauer