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

时间:2017-12-17 12:27:13

标签: docker docker-compose

我正在尝试创建两个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)今天创建。感谢

1 个答案:

答案 0 :(得分:0)

这是正确的行为

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

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

Mybe使用以下命令构建

A

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