我正在尝试创建两个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)今天创建。谢谢
这是正确的行为
当您在dockerfile中使用FROM nginx和FROM节点时,构建docker会从dockerhub获取nginx和节点映像。
所以当你想再次构建docker时,这次它不会从dockerhub下载而是使用本地缓存的图像。
也许您使用以下命令来构建
docker build -t hudddle_nginx .
docker build -t hudddle_node .
因为它的基础图像首先是nginx和节点然后你的自定义图像hudddle_nginx,hudddle_node