执行docker exec时如何注入别名?

问题描述 投票:0回答:1

我想在执行 docker exec 命令时注入一些别名,否则我每次都需要输入例如 alias ll='ls -l' ,所以我做了一段代码,但最后根本没有别名,任何人都可以帮忙解决了这个问题吗?

    $ docker exec -itu root $(docker ps -l -q) bash -c "echo alias ll=\'ls -laF\' >> /alias.sh; \
           shopt -s expand_aliases; source /alias.sh; exec bash"

    root@c9ed5e18f77d:/# ll
    bash: ll: command not found
    root@c9ed5e18f77d:/# alias
    root@c9ed5e18f77d:/# source /alias.sh
    root@c9ed5e18f77d:/# alias
    alias ll='ls -laF'

这个我也试过了,还是不行。

    $ docker exec -itu root $(docker ps -l -q) bash -c "alias ll='ls -laF'; shopt -s expand_aliases; exec bash"

docker容器是基于debian的,我可以运行这个没问题,所以我认为这是一个关于bash的技巧,请帮忙。

    $ docker exec -itu root $(docker ps -l -q) bash -c 'cd /opt; exec bash'
    root@c9ed5e18f77d:/opt# pwd
    /opt
    root@c9ed5e18f77d:/opt#
bash docker exec aliases
1个回答
0
投票

您可以尝试使用命名管道

E.x.

docker compose exec -it radarr bash -c "exec bash --init-file <(echo alias 'll=ls\\ -la')"

© www.soinside.com 2019 - 2024. All rights reserved.