如何为Docker命令写入参数化的Bash别名

我目前正面临一个问题。

我只是拉了一个Vim容器在CoreOs系统上使用它。 我尝试创build一个别名来启动Vim容器,而不是已经存在的容器(主要是因为在这个容器上我可以安装不同的插件)

但目前它不起作用,我不知道为什么。
该容器在/home/dev上具有卷挂接

我的别名:

 alias dockervim="docker run -ti --rm -v \"\$(pwd)\":/home/dev vimpadawan bash -c "vim \"\$1\""" 

但是,当我写dockervim file_name它启动Vim,但不是与文件。

有人有什么想法?

docker版本

 Client version: 1.6.2 Client API version: 1.18 Go version (client): go1.4.2 Git commit (client): 7c8fca2-dirty OS/Arch (client): linux/amd64 Server version: 1.6.2 Server API version: 1.18 Go version (server): go1.4.2 Git commit (server): 7c8fca2-dirty OS/Arch (server): linux/amd64 

谢谢 !

编辑1:

用这个命令和一个start.sh脚本,我可以做我想做的事情:

 docker run --rm -ti -v $(pwd):/root/src -e FILENAME=Dockerfile vimpada 

但是当我试图做一个别名,它显示这个错误:

exec:“Dockerfile”:在$ PATH FATA中找不到可执行文件[0000]来自守护进程的错误响应:无法启动容器f579e5cd5bc61ee5da3b5cbeaf2a645c6183914739464cc4bf605202417467d9:
[8]系统错误:exec:“Dockerfile”:$ PATH中找不到可执行文件

编辑2:

刚刚看到你的答案helmbert,但它实际上显示为我的第一个function相同的错误:

[8]系统错误:exec:“.bashrc”:$ PATH中找不到可执行文件

你的第二个工作完美! 非常感谢 :)

Bash别名不需要参数 。 尽pipe你可以尝试声明一个bash函数:

 function dockervim() { docker run -ti --rm -v "${PWD}":/home/dev vimpadawan vim "${1}" } 

然后只需使用dockervim <filename>调用。

请注意,此解决scheme仅适用于当前工作目录中的文件。 您应该可以使用以下function使其防爆:

 function dockervim() { filename=$(readlink -f $1) docker run -ti --rm -v "${filename}":/tmp/file-to-edit vimpadawan vim /tmp/file-to-edit }