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.
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
Chaque
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/
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!