Docker正在重复使用不同容器的相同卷

我创build了两个不同的自定义图像基于相同的官方postgres图像。 这两个Dockerfile看起来像:

FROM postgres:latest LABEL vendor="***" \ vendor.website="***" \ description="The postgres database" COPY init.sh /docker-entrypoint-initdb.d/ 

这些图像用于不同的docker-compose.yml文件。 问题是,基于这些映像的容器挂载相同的卷,我最终有不同的应用程序相同的数据库。 我以为docker会为不同的容器创build单独的卷。 我究竟做错了什么?

docker检查信息:

  1. 容器1:

    “ID”: “b6ce892e88e08b410af2603041789641cdfe9648e5c36d66d0cff8c495de2720”, “形象”: “SHA256:4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab” …… “坐骑”:[{ “types”: “音量”, “姓名”: “5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461”, “源代码”:“/ VAR / lib / docker / volumes /“/ var / lib / postgresql / data”,“Driver”:“local”,“Mode”:“rw”,“RW”:true,“/ lib / docker / volumes /传播“:”“}],

  2. 容器2

    “ID”: “8c1c9891c462d8520ab107901c39b62fbef389e4501979065a6edb218a25c16a”, “形象”: “SHA256:4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab” …… “坐骑”:[{ “types”: “音量”, “姓名”: “5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461”, “源代码”:“/ VAR / lib / docker / volumes /“/ var / lib / postgresql / data”,“Driver”:“local”,“Mode”:“rw”,“RW”:true,“/ lib / docker / volumes /传播“:”“}],

因此,大家可以看到根据不同的图像(容器4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab )使用同一个卷5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461 。 我显然需要他们使用不同的卷。

更新1

我做了以下几件事情:

  1. 为图像添加不同的标签,以便它们的哈希值会有所不同
  2. 删除了“共享”卷。 我的意思是这两个容器都拿起来了
  3. 开始docker – 依次构build两个应用程序(没有docker-compose down)。 他们再次分享了音量。

更新2

  1. 我删除了我机器上的所有卷和图像,并为这两个应用程序重build了图像
  2. 执行docker – 撰写下来
  3. 被执行的docker – 依次组合起来(用docker工具 – 在切换应用时编写)
  4. 他们不再分享一个音量。 这两个自定义postgres容器都使用自己的卷。

我很困惑。 当不同的容器共享一个卷,以及如何避免它?