docker – 撰写:每个服务的多个图像

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

以下是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)今天创build。 谢谢

那是正确的行为

当你在dockerfile中使用FROM nginx和FROM节点的时候,build立docker的时候会从dockerhub获取nginz和node的图片。

所以当你想再次构builddocker的时候,这次不会从dockerhub下载,而是使用本地caching的图片。

祢使用下面的命令来build立

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

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