S'il vous plaît, aidez-moi à comprendre la différence entre 'image' et 'build' dans docker compose
image
signifie docker compose
exécutera un conteneur basé sur cette imagedocker compose
créera d'abord une image basée sur le Dockerfile trouvé dans le chemin associé à la construction (puis exécutera un conteneur basé sur cette image).PR 2458 a finalement été fusionné pour autoriser les deux (et utiliser image
comme nom d'image lors de la construction, s'il existe).
therobyouknow
mentionne dans les commentaires :
dockerfile:
comme sous-instruction sousbuild:
peut être utilisé pour spécifier le nom/chemin du fichier Dockerfile.
version: '3'
services:
webapp:
build:
context: ./dir
dockerfile: Dockerfile-alternate
args:
buildno: 1
build: attend le chemin dockerfile comme argument, il créera d'abord une image, puis utilisera l'image pour créer un conteneur.
image: attend le nom d'image existant comme argument, il lancera le conteneur en utilisant cette image.
Exemple: docker-compose.yaml
version: '3'
services:
service1:
build: .
ports:
- "5000:5000"
service2:
image: "redis:Alpine"
service1 créera d'abord une image basée sur Dockerfile du chemin actuel et exécutera le conteneur basé sur cette image.
service2 téléchargera l'image "redis: Alpine" depuis le docker hub et exécutera le conteneur sur l'image téléchargée.