docker - 可以以某种方式阻止 'docker-compose down'在生产中运行吗?

标签 docker zsh

我真的不希望在生产中运行docker-compose down。曾经有没有办法在zsh中覆盖该命令,否则,如果在生产服务器上运行该命令只会抛出错误?

我们尝试将命令别名为其他名称,但无济于事。

最佳答案

我希望您不是出于安全目的这样做吗?您可以通过在docker用户组中添加/删除服务来控制哪些用户可以管理docker服务(以及不能管理docker服务)(从而可以管理docker-compose)。

如果要防止自己意外运行docker down,可以编写包装器脚本:

#!/bin/bash
for arg in "$@";do
    if [[ "$arg" = "down" ]];then
        >&2 echo "ERROR: 'docker-compose down' has been disabled!"
        exit 1
    fi
done
/usr/local/bin/docker-compose "$@"   # Adapt to actual path to docker-compose binary if different

将其作为docker-compose放在$PATH的早期位置,例如$HOME/bin/docker-compose并使其可执行。如果命令行包含down,它将退出并向STDERR警告。

但是,这不会阻止任何有恶意意图和必要权限的人直接调用真正的docker-compose二进制文件。

关于docker - 可以以某种方式阻止 'docker-compose down'在生产中运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38456917/

相关文章:

Zsh:如何在一组字符之后强制文件完成?

bash - 这个访谈项目表明什么水平的专业知识?取消设置 foo;回音栏 |读 foo; echo $foo

cygwin - 如何改善windows上babun中zsh的加载时间?

macos - Disown、nohup 或 & 在 Mac OS zsh 上……无法正常工作

MAC中的Docker网络

plugins - flocker-docker-plugin在centos7.2上不起作用

docker - 证书是如何从 super 账本中 hfc-key-store 中真实的 fabric-ca-server 证书派生出来的?

git - 如何编写一个以字符串作为参数的 git 别名

docker - 我可以在Dockerfile中结合使用COPY指令以最小化图像层数吗?

mysql - 无法在 Docker 上加载 Artifactory