保护Docker容器和/或卷不被意外删除

5
我们使用的是一个装有mongodb的docker容器,通过挂载卷来实现数据持久化。 我想要保护容器或卷不受'docker volume prune'或'docker volume rm'等命令的意外删除。 你有什么建议吗?

一种不太正规的方法是 chattr +i /path/to/docker/volume/on/host - Robert
正确保护您的Docker引擎,只授权给有资格和能力的运维人员,并定期备份。@Robert,除非我漏掉了什么,否则您的解决方案也会防止卷被写入(这对于数据库来说可能非常烦人)。 - Zeitounator
1
@Zeitounator - 我害怕的是我自己。:\ - GKman
2个回答

3
为了防止容器/卷的意外删除,Docker 没有提供任何内置方法。
请查看this
此外,已经有一个代码更改以实现此功能,如此处所述,但 Solomon Hykes 因几个原因而投反对票。

使用docker volume prune时,有一种方法可以防止意外删除卷。

请查看this

希望这能帮到您。


嗨,我正在了解如何应用修剪过滤器。看起来我只能通过创建$HOME/.docker/config.json文件(即每个用户的配置)来进行配置。是否有一种方法可以为所有用户创建这样的配置文件? - GKman
@GKman 这个链接应该会有所帮助:https://docs.docker.com/engine/reference/commandline/cli/#configuration-files - mchawre

3
在bash profile或bashrc中创建一个函数/别名。
function docker {
  docker_vol_res="Y"
  [[ $1 == vol* ]] && [[ $2 == prune || $2 == rm ]] && echo -n "Do you want to \"$2\" the volume (Y/N)? " && read docker_vol_res
  [[ $docker_vol_res == "Y" ]] && /usr/bin/docker $*
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接