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:
“ID”: “b6ce892e88e08b410af2603041789641cdfe9648e5c36d66d0cff8c495de2720”, “形象”: “SHA256:4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab” …… “坐骑”:[{ “types”: “音量”, “姓名”: “5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461”, “源代码”:“/ VAR / lib / docker / volumes /“/ var / lib / postgresql / data”,“Driver”:“local”,“Mode”:“rw”,“RW”:true,“/ lib / docker / volumes /传播“:”“}],
-
容器2
“ID”: “8c1c9891c462d8520ab107901c39b62fbef389e4501979065a6edb218a25c16a”, “形象”: “SHA256:4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab” …… “坐骑”:[{ “types”: “音量”, “姓名”: “5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461”, “源代码”:“/ VAR / lib / docker / volumes /“/ var / lib / postgresql / data”,“Driver”:“local”,“Mode”:“rw”,“RW”:true,“/ lib / docker / volumes /传播“:”“}],
因此,大家可以看到根据不同的图像(容器4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab
和4c6ac32f355cdc93251256cc8e8171fc02bb85d719f4efb9ac6bb999ad66b3ab
)使用同一个卷5bb91515eb853e0c18e396b041058d4a03424dfb45c3eb2d2b9890e0b044b461
。 我显然需要他们使用不同的卷。
更新1
我做了以下几件事情:
- 为图像添加不同的标签,以便它们的哈希值会有所不同
- 删除了“共享”卷。 我的意思是这两个容器都拿起来了
- 开始docker – 依次构build两个应用程序(没有docker-compose down)。 他们再次分享了音量。
更新2
- 我删除了我机器上的所有卷和图像,并为这两个应用程序重build了图像
- 执行docker – 撰写下来
- 被执行的docker – 依次组合起来(用docker工具 – 在切换应用时编写)
- 他们不再分享一个音量。 这两个自定义postgres容器都使用自己的卷。
我很困惑。 当不同的容器共享一个卷,以及如何避免它?
- gradle在其caching中找不到opensamljar子
- 在Windows Docker容器Windows Server 2016中运行时的Windows Defender /更新问题
- Docker Windows容器中的Powershell列表过程生成空白列表
- 如何从一个数据库(远程安装)加载db2转储数据到基于docker的数据库
- Dockerregistry和基本身份validation
- 无法在Docker容器中安装Cassandra代理
- 将主机nginx和msql与一个php5-fpm的docker容器连接起来
- 运行docker时,应用程序有不同的外观
- 使用Docker文件共享,但文件似乎并没有更新