Docker 将网络添加到容器时突然删除卷
Docker suddenly removing volume when adding network to container
我在集群网络中有数据库容器。它有自己的节点并且不会改变。
当我为我的数据库容器添加或删除一些网络时出现意外行为:
比如我添加了traefik网络:
my_db:
volumes:
db1:/var/lib/postgresql
networks:
- my_project
- traefik # added
然后我 运行 docker swarm deploy
我的数据库是空的 :(
同样的行为是当我删除这个网络时。两个网络都是重叠的。我还在另一个群(只有一个节点)和另一个项目上进行了测试 - 行为是相同的 - 数据库已删除。
我检查了一个节点的卷,该节点具有全球部署的唯一数据库和 portainer:
docker ps
CONTAINER ID IMAGE
16a78f8b609d postgres:11.3
b71166ae4601 portainer/agent:latest
docker volume ls
DRIVER VOLUME NAME
local 4c3bd578714937e3a5f97e9c5a659a36ad7b9fd0921f57a303f33189275bc997
local 0252ae24cb58f0bd3fec93660f2d09d339d7d579b6d0f9fee5b49e7def9b288b
local 413363adb68602ef02928462e33c53d083a1c507af32c6312632bac68b23cd0a
local c6b042815270a5d37aa710923f69aae9e4ace7c0a0e3a402d0ed3f267acc1923
local cf803014263516e023a208537658c4e7d79d61b5e42fb84d696dfa64fda65c78
local my-project_db1
似乎较旧的数据位于具有哈希卷名称的第一个卷中,当网络为 added/removed 时重新创建 my-project_db1
。
我也尝试在 volumes
部分使用名称 - 相同。
问题已通过以下答案解决:
在 db1:/var/lib/postgresql/data
中添加数据解决了此行为
我在集群网络中有数据库容器。它有自己的节点并且不会改变。
当我为我的数据库容器添加或删除一些网络时出现意外行为:
比如我添加了traefik网络:
my_db:
volumes:
db1:/var/lib/postgresql
networks:
- my_project
- traefik # added
然后我 运行 docker swarm deploy
我的数据库是空的 :(
同样的行为是当我删除这个网络时。两个网络都是重叠的。我还在另一个群(只有一个节点)和另一个项目上进行了测试 - 行为是相同的 - 数据库已删除。
我检查了一个节点的卷,该节点具有全球部署的唯一数据库和 portainer:
docker ps
CONTAINER ID IMAGE
16a78f8b609d postgres:11.3
b71166ae4601 portainer/agent:latest
docker volume ls
DRIVER VOLUME NAME
local 4c3bd578714937e3a5f97e9c5a659a36ad7b9fd0921f57a303f33189275bc997
local 0252ae24cb58f0bd3fec93660f2d09d339d7d579b6d0f9fee5b49e7def9b288b
local 413363adb68602ef02928462e33c53d083a1c507af32c6312632bac68b23cd0a
local c6b042815270a5d37aa710923f69aae9e4ace7c0a0e3a402d0ed3f267acc1923
local cf803014263516e023a208537658c4e7d79d61b5e42fb84d696dfa64fda65c78
local my-project_db1
似乎较旧的数据位于具有哈希卷名称的第一个卷中,当网络为 added/removed 时重新创建 my-project_db1
。
我也尝试在 volumes
部分使用名称 - 相同。
问题已通过以下答案解决:
在 db1:/var/lib/postgresql/data
中添加数据解决了此行为