[Basique] Comment écrire un auto-apprentissage Dockerfile ②

Qu'est-ce qu'un Dockerfile

Un dessin de conception pour créer une image Docker. La création à partir d'un Dockerfile facilite la compréhension du contenu du conteneur. Créez un Dockerfile et créez une image avec la commande suivante.

$ docker build -t <name> <directory>

Comment écrire un Dockerfile

Le Dockerfile se compose essentiellement de trois instructions · DE · COURIR ・ CMD

Commencez à écrire à partir de FROM.

FROM ubuntu:latest
RUN touch test
CMD ["ls"]

Par exemple, dans cet exemple, créez une image de système d'exploitation appelée ubuntu dans FROM et utilisez la commande Linux touch. Dans la plupart des cas, le système d'exploitation est spécifié pour FROM, ou une image Docker créée par une autre personne est spécifiée.

Le travail spécifié par RUN est empilé en tant que couche. Cependant, si vous utilisez beaucoup RUN, le nombre de couches augmentera et l'image Docker deviendra plus lourde, alors soyez prudent.

«CMD» est décrit à la fin du Dockerfile. La commande spécifiée dans CMD est exécutée lors de la création d'un conteneur. Ici, la commande ls est exécutée.

À propos de la différence entre RUN et CMD

En bref, «RUN» crée un calque. «CMD» ne crée pas de couche. En d'autres termes, CMD n'est pas reflété dans l'image Docker.

Si vous souhaitez l'enregistrer dans Dockerimage, décrivez-le dans RUN, et le contenu que vous souhaitez exécuter sera l'image décrite dans CMD.

Pour réduire le nombre de couches ...

Il existe trois commandes pour créer un calque. · COURIR · COPIE · AJOUTER

Dans les affaires réelles, RUN est principalement utilisé et la gestion des paquets est la principale. La commande pour gérer le package est la suivante.

RUN apt-get update -Obtenir une nouvelle liste de paquets
RUN apt-get install <package> -<package>Installer

En les connectant avec &&, la couche peut être allégée en une seule ligne.

RUN apt-get update && apt-get install test

Cette fois, c'est fini.

Recommended Posts

[Basique] Comment écrire un auto-apprentissage Dockerfile ②
[Introduction à Java] Comment écrire un programme Java
[SpringBoot] Comment écrire un test de contrôleur
Comment écrire des rails
Comment écrire docker-compose
Comment écrire Mockito
Comment écrire un fichier de migration
Rails: comment bien écrire une tâche de râteau
[Rails] Comment écrire lors de la création d'une sous-requête
Ecrire un fichier docker pour démarrer jupyter-lab sur ubuntu
Comment écrire du code de test avec la certification de base
Comment écrire du bon code
Comment écrire un test unitaire pour Spring Boot 2
java: Comment écrire une liste de types génériques [Note]
Comment rédiger un commentaire java
Comment introduire l'authentification de base
Comment laisser un commentaire
[Refactoring] Comment écrire le routage
Comment écrire une recherche de comparaison de dates dans Rails
Comment écrire Junit 5 organisé
Comment écrire des graines de Rails
Pour écrire un programme orienté utilisateur (1)
Comment écrire le routage Rails
Comment écrire un mod de base dans Minecraft Forge 1.15.2
Comment insérer une vidéo
Comment créer une méthode
Comment écrire une migration du type Rails datetime au type date
Comment créer et lancer un Dockerfile pour Payara Micro
Comment signer Minecraft MOD
Comment créer un pilote JDBC
[Rails] Comment écrire la gestion des exceptions?
[Swift] Comment envoyer une notification
Comment écrire une déclaration de variable Java
Comment créer un écran de démarrage
Comment créer un plug-in Jenkins
Comment faire un projet Maven
Comment rédiger un code facile à comprendre [Résumé 3]
Comment créer un tableau Java
Comment exécuter un contrat avec web3j
Comment créer un résumé de calendrier Java
Un mémorandum sur l'utilisation d'Eclipse
Je veux écrire un joli build.gradle
Comment insérer une vidéo dans Rails