Docker exec linux 终端创建别名
Docker exec linux terminal create alias
我有一个 运行 和分离容器。我想在附加到该容器之前在那里创建一个命令别名。
当我连接到容器并键入:
alias bar='foo'
别名已创建,可能由以下人员检查:
alias
命令。
但是如果我想通过 docker exec 命令来做同样的事情,即这样
docker exec -it <container-name> /bin/bash -c "alias bar='foo'"
它不起作用,可能是因为当我连接到容器并输入其终端时
/bin/bash -c "alias bar='foo'"
它也不行。
您知道如何修改 alias bar='foo'
以便它与应用于分离容器的 docker exec
命令一起工作吗?
alias
内置函数在当前 shell 中创建一个别名。别名与环境变量一样,不会持久化,只会加载。您需要更新 .bashrc 或容器内的任何内容以具有所需的别名,以便可以在 bash.
的每次启动时加载它
将类似
的内容添加到您的 Dockerfile 中
RUN echo alias bar='foo' >> ~/.bashrc
实际上,如果您 运行 您的容器在 root
以外的用户下,您需要将此命令放入正确的 .bashrc
你的bashrc文件中的别名不直接接受参数。尽管在您的情况下,您将必须创建一个函数并为其取别名。
您可以在 ~/.bashrc 中添加以下内容
dexec() {
docker exec -it "" /bin/bash
echo ""
}
您也可以使用 /bin/sh
代替 /bin/bash
别忘了做
source ~/.bashrc
理想情况下,你可以这样做
dexec <container_id/container_name>
我有一个 运行 和分离容器。我想在附加到该容器之前在那里创建一个命令别名。
当我连接到容器并键入:
alias bar='foo'
别名已创建,可能由以下人员检查:
alias
命令。
但是如果我想通过 docker exec 命令来做同样的事情,即这样
docker exec -it <container-name> /bin/bash -c "alias bar='foo'"
它不起作用,可能是因为当我连接到容器并输入其终端时
/bin/bash -c "alias bar='foo'"
它也不行。
您知道如何修改 alias bar='foo'
以便它与应用于分离容器的 docker exec
命令一起工作吗?
alias
内置函数在当前 shell 中创建一个别名。别名与环境变量一样,不会持久化,只会加载。您需要更新 .bashrc 或容器内的任何内容以具有所需的别名,以便可以在 bash.
将类似
的内容添加到您的 Dockerfile 中
RUN echo alias bar='foo' >> ~/.bashrc
实际上,如果您 运行 您的容器在 root
以外的用户下,您需要将此命令放入正确的 .bashrc
你的bashrc文件中的别名不直接接受参数。尽管在您的情况下,您将必须创建一个函数并为其取别名。
您可以在 ~/.bashrc 中添加以下内容
dexec() {
docker exec -it "" /bin/bash
echo ""
}
您也可以使用 /bin/sh
代替 /bin/bash
别忘了做
source ~/.bashrc
理想情况下,你可以这样做
dexec <container_id/container_name>