Vous le spécifiez dans votre fichier Docker Compose que docker-compose
s'exécute par ex. docker-compose.yaml
.
La construction et le déploiement fonctionnent de la même manière. Définissez simplement le nom de l'image et le tag en tant que subset of build ou spécifiez un fichier docker distinct.
version: '2'
services:
webapp:
build:
context: ./dir
image: username/repository:tag
Étant donné que docker-compose.yaml
en cours d'exécution docker-compose up
produirait les éléments suivants:
$ docker-compose up
Building webapp
Step 1/1 : FROM hello-world
latest: Pulling from library/hello-world
5b0f327be733: Pull complete
Digest: sha256:1f1404e9ea1a6665e3664626c5d2cda76cf90a4df50cfee16aab1a78f58a3f95
Status: Downloaded newer image for hello-world:latest
---> 05a3bd381fc2
Successfully built 05a3bd381fc2
Successfully tagged myusername/myimagename:1.0
WARNING: Image for service webapp was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating dockercompose_webapp_1 ...
Creating dockercompose_webapp_1 ... done
Attaching to dockercompose_webapp_1
webapp_1 |
webapp_1 | Hello from Docker!
webapp_1 | This message shows that your installation appears to be working correctly.
webapp_1 |
webapp_1 | To generate this message, Docker took the following steps:
webapp_1 | 1. The Docker client contacted the Docker daemon.
webapp_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
webapp_1 | 3. The Docker daemon created a new container from that image which runs the
webapp_1 | executable that produces the output you are currently reading.
webapp_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
webapp_1 | to your terminal.
webapp_1 |
webapp_1 | To try something more ambitious, you can run an Ubuntu container with:
webapp_1 | $ docker run -it ubuntu bash
webapp_1 |
webapp_1 | Share images, automate workflows, and more with a free Docker ID:
webapp_1 | https://cloud.docker.com/
webapp_1 |
webapp_1 | For more examples and ideas, visit:
webapp_1 | https://docs.docker.com/engine/userguide/
webapp_1 |
dockercompose_webapp_1 exited with code 0
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da057afd3277 myusername/myimagename:1.0 "/hello" 3 minutes ago Exited (0) 3 minutes ago dockercompose_webapp_1
$ ls
Dockerfile docker-compose.yaml
Comme vous pouvez le voir docker-compose up
construit à la fois le conteneur et a commencé. Il est également nommé en conséquence. Donc, il n'est pas nécessaire d'aller à la fois docker-compose build
et puis docker-compose up
car docker-compose up
à la fois construire et démarrer le conteneur. Enfin, si le conteneur doit être reconstruit pour une raison quelconque, vous pouvez simplement lancer docker-compose up --force-recreate
qui docker pour reconstruire le conteneur et annexant la balise build recréerait l'image: docker-compose up --force-recreate --build
Impossible de définir l'ID du conteneur, il est possible de définir l'étiquette d'image du docker. tag n'est rien d'autre que le versionnement de l'image. Voici la commande pour créer l'image avec tag. $ docker construction -t nom_fichier: tag cible-dossier-chemin –
Ceci est incorrect si vous utilisez docker-compose, vous pouvez spécifier le nom de l'image lors de la construction et même la version. vous n'avez pas non plus besoin d'exécuter une commande supplémentaire pour construire, build est disponible dans 'docker-compose up' si le fichier docker-composer est structuré avec une commande build. –