2017-12-17 1 views
0

Ich versuche, zwei Dockers zu erstellen: ein Nginx und die anderen Nodejs. Ich finde jedoch, dass zwei Sätze von Bildern erstellt werden. Ich habe alle vorhandenen Bilder gelöscht und das System neu gestartet, aber es sieht wie folgt aus. Die relevanten Dateien sind unten.docker-komponieren: mehrere Bilder pro Service

Das Folgende ist die Docker-compose.yml

services: 

    nginx: 
    build: ./nginx 
    restart: always 
    ports: 
     - "80:80" 
    links: 
     - node:node 

    node: 
    build: ./node 
    restart: always 
    ports: 
     - "8080:8080" 
    volumes: 
     - ./node:/usr/src/app 
     - /usr/src/app/node_modules 

Die nginx Dockerfile ist wie folgt:

FROM nginx 
COPY nginx.conf /etc/nginx/conf.d/default.conf 

Und die NodeJS Dockerfile wie folgt:

FROM node:9.3.0-alpine 
WORKDIR /usr/src/app 
COPY package.json /usr/src/app/ 

RUN npm install 
COPY . /usr/src/app 

EXPOSE 8080 
CMD [ "npm", "start" ] 

Die docker images Befehl zeigt:

REPOSITORY   TAG     IMAGE ID   CREATED    SIZE 
hudddle_nginx  latest    f784ac4611f5  5 minutes ago  108MB 
hudddle_node  latest    5e083ec259e7  5 minutes ago  70.4MB 
node    9.3.0-alpine  466bcf8bf36e  3 days ago   67.6MB 
nginx    latest    f895b3fb9e30  5 days ago   108MB 

Warum ist es so? Der Server (AWS) wurde heute erstellt. Dank

Antwort

0

Das ist das richtige Verhalten

, wie Sie von nginx und von Knoten in dockerfile verwenden, während Gebäude Docker nginz und Knoten Bilder von dockerhub bekommt.

Wenn Sie also docker erneut erstellen möchten, wird dieses Mal nicht von dockerhub heruntergeladen, sondern es wird ein lokales zwischengespeichertes Bild verwendet.

Mybe Sie unter Befehle

docker build -t hudddle_nginx . 
docker build -t hudddle_node . 

zu bauen Wegen, dass seine Basis Bilder zuerst nginx und Knoten und dann hudddle_nginx Ihre eigene Bilder, hudddle_node

+0

Dank für die Antwort @ Sanath-meti. Ich verwende nicht den Build-Befehl. Aber heißt das, dass es zwei Bilder gibt. Und was würden die 3 Tage bedeuten? Hat Docker-Hub eine Kopie meiner Einstellungen? – Raj

+0

Wie hast du diese Bilder huddle_nginx?, Wenn du den Befehl build mit dockerfiel ausführst, hat er hudddle_nginx erstellt und wie du FROM nginx in dockerfile benutzt, also hat er dieses Bild heruntergeladen und das huddle_nginx, das du beim Aufbau erwähnt hast, bedeutet 3day committed für dieses Bild in Dockerhub Repo. –

+0

Um ein ** Commit ** für dieses Bild in Docker Repo zu machen, brauchen wir nicht ein Login oder eine Art? Während ich getestet habe, hätte ich den Build-Befehl verwenden können, aber auf dem aktuellen neuen Server habe ich den 'docker-compose' verwendet. Gibt es eine Möglichkeit, herauszufinden, ob hudddle_nginx in Docker-Hub existiert? Ich habe versucht zu suchen und es zeigt Null. – Raj