Maison  >  Article  >  Opération et maintenance  >  Quelle est la différence entre copier et ajouter des instructions dans Docker

Quelle est la différence entre copier et ajouter des instructions dans Docker

青灯夜游
青灯夜游original
2021-11-29 16:57:0723786parcourir

Différence : l'instruction COPY ne prend pas en charge l'obtention de ressources à partir d'URL distantes. Elle peut uniquement lire les ressources de l'hôte sur lequel la construction Docker est exécutée et les copier dans l'image, tandis que l'instruction ADD prend en charge l'obtention de ressources à partir d'URL distantes et peut les lire ; serveurs distants via des URL. Obtenez les ressources et copiez-les dans l'image.

Quelle est la différence entre copier et ajouter des instructions dans Docker

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

L'instruction COPY et l'instruction ADD dans le Dockerfile peuvent copier ou ajouter des ressources sur l'hôte à l'image du conteneur, et elles sont toutes terminées pendant le processus de création de l'image.

La différence entre ADD et COPY de DockerFile

La seule différence entre l'instruction COPY et l'instruction ADD est : si elle prend en charge l'obtention de ressources à partir d'une URL distante.

L'instruction COPY ne peut lire que les ressources de l'hôte sur lequel Docker build est exécuté et les copier dans l'image. L'instruction ADD prend également en charge la lecture des ressources du serveur distant via l'URL et leur copie dans l'image.

Pour les mêmes besoins, il est recommandé d'utiliser la commande COPIER. L'instruction ADD est plus efficace pour lire les fichiers tar locaux et les décompresser.

Instructions ADD et COPY

COPY a la même syntaxe que ADD, copie de fichiers.

AJOUTER

Copiez les nouveaux fichiers, répertoires ou URL de fichiers distants cbce1a3cf2f839037583dce8e845670b et ajoutez-les à 6be58d1426a577c69ada50a4bc87dd69.

cbce1a3cf2f839037583dce8e845670b Plusieurs ressources peuvent être spécifiées, mais s'il s'agit de fichiers ou de répertoires, leurs chemins sont interprétés par rapport à la source du contexte de construction, qui est _WORKDIR_.

Chaque cbce1a3cf2f839037583dce8e845670b peut contenir des caractères génériques et la correspondance utilisera les règles filepath.Match de Go. Par exemple :

Ajoutez tous les fichiers commençant par "hom" :

ADD hom* /mydir/

Dans l'exemple ci-dessous, ? est remplacé par n'importe quel caractère, tel que "home.txt".

ADD hom?.txt /mydir/

6be58d1426a577c69ada50a4bc87dd69 est un chemin absolu ou un chemin relatif par rapport à WORKDIR.

L'instruction ADD présente les avantages suivants :

  • 1. Si le chemin source est un fichier et que le chemin cible se termine par /, Docker traitera le chemin cible comme un répertoire et copiera le fichier source dans ce répertoire.
    Si le chemin cible n'existe pas, le chemin cible sera automatiquement créé.

  • 2. Si le chemin source est un fichier et que le chemin cible ne se termine pas par /, Docker traitera le chemin cible comme un fichier.
    Si le chemin cible n'existe pas, un fichier sera créé avec le nom du chemin cible, et le contenu proviendra de la même source que le fichier
    Si le fichier cible est un fichier existant, il sera écrasé par ; le fichier source Bien entendu, seul le contenu sera écrasé et le nom du fichier sera toujours le nom du fichier cible.
    Si le fichier cible existe réellement dans un répertoire existant, le fichier source sera copié dans ce répertoire. Notez que dans ce cas il est préférable de terminer l’affichage par / pour éviter toute confusion.

  • 3. Si le chemin source est un répertoire et que le chemin cible n'existe pas, docker créera automatiquement un répertoire avec le chemin cible et copiera les fichiers dans le répertoire du chemin source.
    Si le chemin cible est un répertoire existant, Docker copiera les fichiers du répertoire du chemin source dans le répertoire.

  • 4. Si le fichier source est un fichier d'archive (fichier compressé), docker le décompressera automatiquement.

Les avantages ci-dessus sont également les inconvénients d'ADD

Apprentissage recommandé : "Tutoriel vidéo 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:
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