web-dev-qa-db-fra.com

Comment créer une nouvelle image docker à partir d'une image existante?

Je viens de commencer à utiliser Docker. Je crée une image en utilisant un fichier Docker. Comment puis-je créer une nouvelle image à partir de cette image existante?

16
Aaron Shen

Vous pouvez créer une nouvelle image en utilisant la commande docker $ build docker -f nom_fichier docker., il lira d'abord le Dockerfile où les instructions sont écrites et construira automatiquement l'image. Les instructions du Dockerfile contiennent les commandes nécessaires pour assembler une image. Une fois l'image créée, un identifiant d'image lui sera attribué. L'image peut être envoyée au hub de registre Docker. Pour cela, l'utilisateur doit créer un compte dans le hub de registre Docker.

Un exemple de Dockerfile ressemble à ceci,

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

Ici, la première instruction indique que la nouvelle image utilisera docker/whalesay: latest image. La deuxième instruction exécutera les deux commandes. Et la troisième instruction indique que lorsque l'environnement est configuré, la commande "fortune -a" doit s'exécuter.

12
Arif A.

Afin de créer une nouvelle image à partir d'une image existante, tout ce que vous avez à faire est de spécifier 'FROM' pour par exemple:

FROM sergiu/ubuntu
MAINTAINER sergiu
5
Sergiu

Disons que vous avez un conteneur bd91ca3ca3c8 en cours d'exécution et vous souhaitez créer une nouvelle image après avoir apporté des modifications au conteneur. La génération d'une autre image vous permettra de conserver vos modifications.

Dans ce cas, vous pouvez exécuter:

docker commit -p -a "author_here" -m "your_message" bd91ca3ca3c8 name_of_new_image

-p met le conteneur en pause pendant que la commande commit crée la nouvelle image.

-a vous permet de fournir des informations sur l'auteur de la nouvelle image.

-m vous permet d'ajouter un commentaire comme dans Git.

4
nPcomp

Docker commit : crée une nouvelle image à partir des modifications d'un conteneur.

Il peut être utile de valider les modifications ou paramètres d'un fichier de conteneur dans une nouvelle image. Cela vous permet de déboguer un conteneur en exécutant un shell interactif ou d'exporter un jeu de données de travail vers un autre serveur. En règle générale, il est préférable d'utiliser Dockerfiles pour gérer vos images de manière documentée et maintenable.

2
m.semnani

Je suis également nouveau dans Docker mais ce que je trouve pourrait être utile.

1) chaque fois que vous écrivez "FROM" et exécutez le fichier docker, docker regarde dans son dépôt et charge d'abord cette image. donc si vous avez une image locale que vous souhaitez utiliser dans "FROM", alors elle doit être chargée.

2) quel paramètre vous donnez dans "FROM" est important, comme si vous donnez repo_name ou une mauvaise balise, cela donne le message d'erreur. donc pour cette commande "docker images" exécutée pour voir votre image repo_name et tag corrects.

3) Maintenant, vous pouvez démarrer votre nouveau fichier Docker comme ceci

FROM REPOSITORY:TAG

et ça marchera

0
Mayank Jain

Vous pouvez suivre la commande ci-dessous pour créer une image pour une image existante:

docker tag jboss/wildfly myimage:v1

Crée une image appelée myimage avec la balise v1 pour l'image jboss/wildfly:latest

0
chiducaf