Docker正在为不同的容器

时间:2017-09-29 08:02:38

标签: postgresql docker

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

FROM postgres:latest

LABEL vendor="***" \
      vendor.website="***" \
      description="The postgres database"

COPY init.sh /docker-entrypoint-initdb.d/

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

码头工人检查信息:

  1. 容器1:

    “Id”:“b6ce892e88e08b410af2603041789641cdfe9648e5c36d66d0cff8c495de2720”, “图片”:“sha256:4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab”, ... “坐骑”:[     {         “类型”:“音量”,                 “名称”:“5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461”,                 “来源”:“/ var / lib / docker / volumes / 5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461 / _data”,                 “目的地”:“/ var / lib / postgresql / data”,                 “司机”:“本地”,                 “模式”:“rw”,                 “RW”:是的,                 “传播”:“”     } ],

  2. 容器2

    “Id”:“8c1c9891c462d8520ab107901c39b62fbef389e4501979065a6edb218a25c16a”, “图片”:“sha256:4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab”, ... “坐骑”:[ { “类型”:“音量”, “名称”:“5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461”, “来源”:“/ var / lib / docker / volumes / 5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461 / _data”, “目的地”:“/ var / lib / postgresql / data”, “司机”:“本地”, “模式”:“rw”, “RW”:是的, “传播”:“” } ],

  3. 因为您可以看到基于不同图像(4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab)的容器使用相同的卷5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461。我显然需要他们使用单独的卷。

    更新1

    我做了以下事情:

    1. 为图片添加了不同的标签,以使其哈希值不同
    2. 删除了“共享”卷。我的意思是两个集装箱都拿起来的那个
    3. 依次启动docker-compose为两个应用程序组成(没有docker-compose down)。他们再次分享了这个卷。
    4. 更新2

      1. 我删除了计算机上的所有卷和图片,并为两个应用重建了图像
      2. 执行docker-compose down
      3. 执行停泊器 - 依次组合两者(在切换应用程序时使用docker-compose)
      4. 他们不再共享音量了。两个自定义postgres容器都使用自己的卷。
      5. 我很困惑。当不同的容器共享一个卷,以及如何避免它?

0 个答案:

没有答案