19

マウントタイプ、マウントソース、マウントターゲットで作成しているswarmサービスを作成するときに、1つのマネージャーと別の通常のノードを備えたswarmクラスターがあります。マネージャーとノードの両方に同じ名前のボリュームを作成し、コンテナーを起動すると、サービスが起動します。

サービスをリリースすると、サービスと共に作成されたボリュームが削除されませんでしたが、これはまだ問題ありません。

私が直面している問題は、同じエンドポイントでボリュームを削除すると、Swarm Manager でボリュームが削除されるだけで、サービスの作成中にノードで作成されたボリュームがまだ存在することです。

管理者に、swarm サービスと一緒に作成されたすべてのボリュームを削除してもらいたいです。方法はありますか??

4

2 に答える 2

3

As far as I know a volume is only created on nodes where a container is created. Is it possible that your service fails to start on one node, ends up on the other and somehow swarm doesn't clean up? If thats the case write an issue in github.

Update (from comments):

According to the docker service create documentation:

A named volume is a mechanism for decoupling persistent data needed by your container from the image used to create the container and from the host machine. Named volumes are created and managed by Docker, and a named volume persists even when no container is currently using it. Data in named volumes can be shared between a container and the host machine, as well as between multiple containers. Docker uses a volume driver to create, manage, and mount volumes. You can back up or restore volumes using Docker commands.

So if you are using named volumes the correct answer would be why are they removed on the manager and where they ever created there?

于 2017-10-12T06:28:08.077 に答える