Table des matières
Introduction à la construction d'images
docker commit构建镜像
Dockerfile est un fichier composé d'un ensemble d'instructions. Chaque instruction correspond à une commande sous Linux. Le programme Docker génère finalement une image en lisant les instructions contenues dans le fichier. Fichier Docker.
Spécifiez l'image de base
Copiez le fichier du contexte de construction vers l'image
COPY prend en charge deux formats : COPY src dest et COPY ["src", "dest"]
  4.ADD
La différence est que si src est un fichier d'archive (tar, zip, tgz, xz), le fichier sera automatiquement transféré vers dest
 6.EXPOSE
Déclarer un fichier ou un répertoire comme un volume
  9.RUN
  10.CMD
  11.ENTRYPOINT
Dockerfile演示
Maison Opération et maintenance Docker Il existe plusieurs façons de créer une image Docker

Il existe plusieurs façons de créer une image Docker

Feb 23, 2022 pm 06:22 PM
docker 镜像

Il existe deux façons de créer une image Docker : 1. Utilisez la commande "docker commit" pour créer manuellement l'image basée sur le conteneur existant ; 2. Utilisez Dockerfile pour créer automatiquement l'image. Le programme Docker générera automatiquement l'image. en lisant les instructions dans le fichier de construction Dockerfile.

Il existe plusieurs façons de créer une image Docker

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.

Parfois, l'image téléchargée depuis l'entrepôt d'images Docker ne peut pas répondre aux exigences. Nous pouvons créer notre propre image basée sur une image de base.

Introduction à la construction d'images

Dans quelles circonstances devons-nous créer l'image nous-mêmes ?

(1) Lorsque nous ne trouvons pas une image existante, comme une application développée par nous-mêmes

(2) Nous devons ajouter des fonctions spécifiques à l'image

Il existe deux façons pour Docker de créer une image : docker commit et fichier de build Dockerfiledocker commit命令与Dockerfile构建文件

docker commit构建镜像

基于已有容器构建镜像主要是通过docker commit

docker commit pour construire une image

La construction d'une image basée sur un conteneur existant utilise principalement le docker commit commande pour créer une nouvelle image.
  • Il y a trois étapes principales pour créer dockercommit :
  • Exécuter le conteneur
  • Modifier le conteneur

Enregistrer le conteneur en tant que nouvelle image

Par exemple, installez l'éditeur vim dans l'image centos et enregistrez-le en tant que nouvelle image

(1) Exécutez le conteneur

[root@ken1 docker]# docker run -it centos
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
a02a4930cb5d: Pull complete 
Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
Status: Downloaded newer image for centos:latest
Copier après la connexion
(2) Installez l'éditeur vim

L'éditeur vim confirme qu'il n'est pas installé

[root@69f501e858a6 /]# vim
bash: vim: command not found
Copier après la connexion
Installez-le

[root@69f501e858a6 /]# yum install vim -y
Copier après la connexion
(3) Enregistrez-le en tant que nouvelle image

Tout d'abord vérifiez l'image en cours d'exécution

[root@ken1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
69f501e858a6        centos              "/bin/bash"         2 minutes ago       Up 2 minutes                            quizzical_torvalds
Copier après la connexion

Utilisez commit pour enregistrer sous La nouvelle image
[root@ken1 ~]# docker commit 69f501e858a6 centos-vim
sha256:42083b89a179368bc29a8f40d14f8824990183c8e4b28fd84411d440c26342e5
Copier après la connexion

69f501e858a6 est l'ID du conteneur en cours d'exécution Vous pouvez également utiliser le nom ci-dessous

centos-vim est le nom de la nouvelle image.

Vérifiez s'il existe une image centos-vim

Redémarrez la nouvelle image, vérifiez si vous pouvez utiliser l'éditeur vim

Vous pouvez découvrir de nouvelles images en utilisant l'éditeur vim

[root@ken1 ~]# docker run -it centos-vim 
[root@61d090898bad /]# vim
[root@61d090898bad /]# vim test
Copier après la connexion
    Ce qui précède montre comment. utilisez commit pour créer une nouvelle image, mais docker ne recommande pas d'utiliser cette méthode pour créer une image pour les raisons suivantes :
  • Il s'agit d'une manière manuelle de créer des images, le conteneur est sujet aux erreurs, et il est inefficace et faible en répétabilité
Plus important encore. L'utilisateur ne sait pas comment l'image est créée. Y a-t-il un programme malveillant à l'intérieur ?

Dockerfile pour construire l'image

Dockerfile est un fichier composé d'un ensemble d'instructions. Chaque instruction correspond à une commande sous Linux. Le programme Docker génère finalement une image en lisant les instructions contenues dans le fichier. Fichier Docker.

Le premier Dockerfike

Étape 1 : Créer un nouveau répertoire

[root@ken1 ~]# mkdir /test
Copier après la connexion

Étape 2 : Écrire un Dockerfile

Le nom s'appelle Dockerfile, et le premier D doit être en majuscule

[root@ken1 ~]# cat Dockerfile
FROM centos
RUN yum install vim -y
Copier après la connexion

FROM centos signifie utiliser centos comme base image

RUN signifie installer l'éditeur vim sur centos

Étape 3 : Construire l'image

[root@ken1 ~]# docker build -t centos-vim2 .
Copier après la connexion

Spécifiez le nom de la balise (tag) de la nouvelle image après -t

Le dernier point indique que le contexte du docker est le contexte actuel. annuaire. Docker recherchera le fichier Dockerfile à partir du contexte de construction par défaut. Nous pouvons également spécifier l'emplacement du Dockerfile via le paramètre -f : Afficher l'image Afficher la hiérarchie des images. l'historique de construction de l'image, qui est le processus d'exécution du Dockerfile.

Instructions communes de Dcokerfile 1.FROM

Spécifiez l'image de base

 2. MAINTAINERDéfinissez l'auteur de l'image. Il peut s'agir de n'importe quel caractère

 3.COPY

Copiez le fichier du contexte de construction vers l'image

COPY prend en charge deux formats : COPY src dest et COPY ["src", "dest"]

Remarque : src ne peut que être copié Les fichiers ou répertoires dans le contexte de construction dynamique ne peuvent se trouver que dans le même répertoire que le Dockerfile

  4.ADD

est similaire à COPY, copiant les fichiers du contexte de construction vers l'image.

La différence est que si src est un fichier d'archive (tar, zip, tgz, xz), le fichier sera automatiquement transféré vers dest

 5.ENV

Définissez les variables d'environnement, qui peuvent être utilisées par des instructions ultérieures, telles que Comme:

ENV nameken RUN echo $name

 6.EXPOSE

Le processus dans le conteneur spécifié écoutera un certain port et Docker peut exposer le port

 7.VOLUME

Déclarer un fichier ou un répertoire comme un volume

  8.WORKDIR

Définissez le répertoire de travail actuel dans l'image pour les instructions RUN, ENTRYPINT, ADD, COPY suivantes

  9.RUN

Exécutez la commande spécifiée dans le conteneur

  10.CMD

容器启动时运行指定的命令

dockerfile中可以多个CMD指令,但是只要最后一个生效。CMD可以被docker run之后的参数替换

  11.ENTRYPOINT

设置容器启东市的命令

dockerfile中可以有多个ENTRYPOINT,但是只有最后一个生效。

CMD或者docker run之后的参数会被当做参数传递给ENTERYPOINT.

Dockerfile演示

下面演示一个比较全面的dockerfile

[root@ken1 test]# cat Dockerfile 
#my Dockerfile
FROM busybox
MAINTAINER ken
WORKDIR /ken
RUN touch test
COPY ["ken1","."]
ADD ["wordpress.tar.gz","."]
ENV name "ken"
Copier après la connexion

注意:Dockerfile支持以#开头的注释

构建镜像

[root@ken1 test]# docker build -t myimage .
Sending build context to Docker daemon  4.281MB
Step 1/7 : FROM busybox
 ---> 3a093384ac30
Step 2/7 : MAINTAINER ken
 ---> Running in 2a73a83507ce
Removing intermediate container 2a73a83507ce
 ---> 8c3df9b3d823
Step 3/7 : WORKDIR /ken
 ---> Running in 31c6f9fe2195
Removing intermediate container 31c6f9fe2195
 ---> a458cf986072
Step 4/7 : RUN touch test
 ---> Running in e1b08ebd363c
Removing intermediate container e1b08ebd363c
 ---> 41601920009a
Step 5/7 : COPY ["ken1","."]
 ---> 2ebfa0933fca
Step 6/7 : ADD ["wordpress.tar.gz","."]
 ---> d0ad29d3aa34
Step 7/7 : ENV name "ken"
 ---> Running in fceae6e20e63
Removing intermediate container fceae6e20e63
 ---> 7efe0600e48f
Successfully built 7efe0600e48f
Successfully tagged myimage:latest
Copier après la connexion

查看镜像

运行该镜像

[root@ken1 test]# docker run -it myimage
/ken # ls
ken1       test       wordpress
/ken # echo $name
ken
Copier après la connexion
  •  可以发现当前工作目录为/ken,且自动创建
  • ken1是我们从docker context目录中复制过去的
  • test是使用touch创建的
  • wordpres压缩包已经被自动解压
  • $name为变量值为ken

推荐学习:《docker视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment créer un miroir dans Docker Comment créer un miroir dans Docker Apr 15, 2025 am 11:27 AM

Étapes pour créer une image docker: écrivez un dockerfile qui contient les instructions de construction. Créez l'image dans le terminal, en utilisant la commande docker build. Marquez l'image et attribuez des noms et des balises à l'aide de la commande docker tag.

Comment mettre à jour l'image de Docker Comment mettre à jour l'image de Docker Apr 15, 2025 pm 12:03 PM

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Comment utiliser Docker Desktop Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Comment enregistrer l'image docker Comment enregistrer l'image docker Apr 15, 2025 am 11:54 AM

Pour enregistrer l'image dans Docker, vous pouvez utiliser la commande docker commit pour créer une nouvelle image, contenant l'état actuel du conteneur spécifié, Syntaxe: Docker Commit [Options] Nom d'image de l'ID de conteneur. Pour enregistrer l'image dans le référentiel, vous pouvez utiliser la commande docker push, Syntax: Docker Push Image Name [: Tag]. Pour importer des images enregistrées, vous pouvez utiliser la commande docker pull, syntaxe: docker pull name [: tag].

Comment lire la version docker Comment lire la version docker Apr 15, 2025 am 11:51 AM

Pour obtenir la version Docker, vous pouvez effectuer les étapes suivantes: exécutez la commande docker "docker --version" pour afficher les versions client et serveur. Pour Mac ou Windows, vous pouvez également afficher les informations de version via l'onglet Version de la GUI de bureau Docker ou du menu de bureau à propos de Docker.

Comment copier des fichiers dans Docker à l'extérieur Comment copier des fichiers dans Docker à l'extérieur Apr 15, 2025 pm 12:12 PM

Méthodes de copie de fichiers en hôtes externes dans Docker: Utilisez la commande docker cp: exécuter docker cp [options] & lt; Container Path & gt; & lt; Host Path & gt;. Utilisation de volumes de données: créez un répertoire sur l'hôte et utilisez le paramètre -v pour monter le répertoire dans le conteneur lors de la création du conteneur pour obtenir la synchronisation de fichiers bidirectionnels.

Comment vérifier le nom du conteneur Docker Comment vérifier le nom du conteneur Docker Apr 15, 2025 pm 12:21 PM

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Comment sortir du conteneur par Docker Comment sortir du conteneur par Docker Apr 15, 2025 pm 12:15 PM

Quatre façons de quitter Docker Container: Utilisez Ctrl D dans le terminal de conteneur Entrez la commande d'exit dans le terminal de conteneur Utilisez Docker Stop & lt; contener_name & gt; Commande utilise docker kill & lt; contener_name & gt; commande dans le terminal hôte (sortie de force)

See all articles