代码之家  ›  专栏  ›  技术社区  ›  Jimmix

Docker Exec Linux终端创建别名

  •  0
  • Jimmix  · 技术社区  · 5 年前

    我有一个正在运行和分离的容器。在附加到容器之前,我想在那里创建一个命令别名。

    当我连接到容器并键入:

    alias bar='foo'
    

    将创建别名,并可由以下人员进行检查:

    alias
    

    命令。

    但如果我想在 码头工人 命令IE这边

    docker exec -it <container-name> /bin/bash -c "alias bar='foo'"
    

    它不起作用,可能是因为当我连接到容器并输入到它的终端时

    /bin/bash -c "alias bar='foo'"
    

    它也不起作用。

    你知道怎么修改吗 alias bar='foo' 所以它与 docker exec 命令是否应用于分离的容器?

    3 回复  |  直到 5 年前
        1
  •  1
  •   Tanktalus    5 年前

    这个 alias 内置在当前shell中创建别名。别名和环境变量一样,不是持久化的,而是加载的。您需要更新您的.bashrc或容器中的任何内容,使其具有所需的别名,以便可以在bash的每个开头加载它。

        2
  •  1
  •   sonus    5 年前

    bashrc文件中的别名不直接接受参数。但是在您的例子中,您必须创建一个函数和别名。

    您可以在~/.bashrc上添加以下内容

    dexec() {
        docker exec -it "$1" /bin/bash
        echo "$1"
    }
    

    别忘了做

    source ~/.bashrc
    

    理想情况下,你可以这样做

    dexec <container_id>
    
        3
  •  0
  •   vvchik    5 年前

    在你的文件里加上
    RUN echo alias bar='foo' >> ~/.bashrc
    实际上,如果您在除 root 你需要把这个命令输入正确的 .bashrc