docker-compose:每个服务多个图像

问题描述 投票:0回答:1

我正在尝试创建两个docker:一个nginx和另一个nodejs。但是,我发现正在创建两组图像。我已删除所有现有图像并重新启动系统,但显示如下。相关文件如下。

以下是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

nginx Dockerfile如下:

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

而NodeJS Dockerfile如下:

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" ]

docker images命令显示:

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

为什么会这样?服务器(AWS)今天创建。谢谢

docker docker-compose
1个回答
0
投票

这是正确的行为

当您在dockerfile中使用FROM nginx和FROM节点时,构建docker会从dockerhub获取nginx和节点映像。

所以当你想再次构建docker时,这次它不会从dockerhub下载而是使用本地缓存的图像。

也许您使用以下命令来构建

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

因为它的基础图像首先是nginx和节点然后你的自定义图像hudddle_nginx,hudddle_node

© www.soinside.com 2019 - 2024. All rights reserved.