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

时间:2016-07-19 11:13:37

标签: docker zsh

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

我们试图将命令别名为别的东西,但无济于事。

1 个答案:

答案 0 :(得分:2)

我希望您出于安全目的不这样做?您可以通过在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二进制文件。