44 votes

Docker Compose n'autorise pas l'utilisation d'images locales

La commande suivante échoue, en essayant d'extraire une image du Docker Hub:

 $ docker-compose up -d
Pulling web-server (web-server:staging)...
ERROR: repository web-server not found: does not exist or no pull access
 

Mais je veux juste utiliser une version locale de l'image, qui existe:

 $ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
web-server           staging             b94573990687        7 hours ago         365MB
 

Pourquoi Docker ne recherche pas parmi les images stockées localement?


Ceci est mon fichier Docker Compose:

 version: '3'
services:
  chat-server:
    image: chat-server:staging
    ports:
      - "8110:8110"
  web-server:
    image: web-server:staging
    ports:
      - "80:80"
      - "443:443"
      - "8009:8009"
      - "8443:8443"
 

et mon fichier .env:

 DOCKER_HOST=tcp://***.***.**.**:2376
DOCKER_TLS_VERIFY=true 
DOCKER_CERT_PATH=/Users/Victor/Documents/Development/projects/.../target/docker
 

52voto

n2o Points 441

En général, cela devrait fonctionner comme vous le décrivez. J'ai essayé de le reproduire, mais cela a tout simplement fonctionné ...

Structure du dossier:

 .
├── docker-compose.yml
└── Dockerfile
 

Contenu de Dockerfile:

 FROM alpine
CMD ["echo", "i am groot"]
 

Construire et taguer l'image:

 docker build -t groot .
docker tag groot:latest groot:staging
 

avec docker-compose.yml:

 version: '3.1'
services:
  groot:
    image: groot:staging
 

et lancez docker-compose:

 $ docker-compose up
Creating groot_groot ... 
Creating groot_groot_1 ... done
Attaching to groot_groot_1
groot_1  | i am groot
groot_groot_1 exited with code 0
 

14voto

Denis Tsoi Points 1878

Dans votre fichier docker-compose.yml, vous pouvez spécifier build: . au lieu de build: <username>/repo> pour les générations locales (plutôt que de les extraire de docker-hub) - je ne peux pas le vérifier pour le moment, mais je pense que vous pourrez peut- être créer des chemins relatifs pour plusieurs services vers le fichier docker-compose.

 services:
  app:
    build: .
 

Référence: https://github.com/gvilarino/docker-workshop

8voto

Tom Saleeba Points 571

Vous devrez peut-être modifier votre balise d'image pour avoir deux parties séparées par une barre oblique / . Donc au lieu de

 chat-server:staging
 

faire quelque chose comme:

 victor-dombrovsky/chat-server:staging
 

Je pense qu'il y a une certaine logique derrière les tags Docker et les tags "une partie" sont interprétés comme des images officielles provenant de DockerHub.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X