docker - 即使运行新的容器镜像后,docker容器也使用相同的卷

标签 docker docker-compose

我有 docker 中的两个容器

compose.yml

version: '2'
services:
  nginx:
    image: local-nginx:0.3
    ports:
      - "81:81"
    volumes_from:
      - webapp
  webapp:
    image: local-webapp:0.65

Web应用程序Dockerfile
FROM node:4.3.0
...
VOLUME /www
CMD npm run some_script

因此,发生了什么事,webapp容器将文件夹/ www共享到nginx,并且静态文件从nginx容器提供。
我正在用命令启动我的应用程序
docker-compose -f compose.yml up

一切正常,很好。但是,例如,当我想运行带有其他版本的Webapp的应用程序本地网络应用程序:0.66
我在compose.yml中将版本更改为0.66,停止当前容器并再次运行
docker-compose -f compose.yml up

但是,我仍然看到相同版本的webapp。当我进入nginx容器时,我仍然看到与以前的0.65相同的文件。要查看正确的文件,我必须删除所有容器,然后再次删除docker-compose -f compose.yml。

所以,这个问题。如何在不删除所有容器的情况下将我的compose.yml文件配置为更新卷?

最佳答案

这是因为Compose preserves volumes

如果需要新数据,则有两个选择:

  • 不要使用音量
  • 首先删除容器
  • 关于docker - 即使运行新的容器镜像后,docker容器也使用相同的卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38573024/

    相关文章:

    docker - 如何在 Docker 容器内的 CockroachDB 中运行 SQL 脚本?

    docker - 无法在 Docker 中运行镜像

    selenium - Codeception Web 驱动程序(Docker 上的 Selenium)测试无法正常工作,因为无法看到其他容器(但在我的开发机器上工作?!)

    docker - Kubernetes 负载均衡器外部 IP 待定

    node.js - Docker-compose up : no such file or directory, open '/usr/src/app/package.json'

    ubuntu - 有没有办法备份我的 docker 环境

    java - 如何在集群模式下运行docker redis?

    git - 尝试从 docker 容器内安装使用(私有(private))git 存储库的软件包失败

    docker - 如何在 convox 中使用本地 docker 镜像?

    docker-compose 使用 dockerfiles 运行 2 个服务,找不到任务 "phx.server",main.go : no such file or directory