Saf*_*fik 0 linux bash shell docker
所以我有一个运行的docker容器,里面有几个文件夹/文件.
当我进入容器时,我可以看到它们是:
hostmachine $> docker exec -it testContainer bash
testContainer @ testContainer:〜$ ls -l
total 40200
-rw-r--r-- 1 root root 41156267 Apr 11 20:10 herp-4.2.2-SNAPSHOT-ap3.tar.gz
drwxr-xr-x 2 root root 4096 Apr 11 20:10 var
drwxr-xr-x 5 root root 4096 Apr 11 20:10 herp-4.2.2-SNAPSHOT
lrwxrwxrwx 1 root root 39 Apr 11 20:10 current -> /home/testContainer/herp-4.2.2-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
我的问题是:
什么脚本,如何在我的hostmachine上使用它:
1)从容器回送(返回)以下信息:
" current - > /home/testContainer/herp-4.2.2-SNAPSHOT "
2)然后再进一步,回顾最后一点:
HERP-4.2.2-SNAPSHOT
所以基本上它可能是这样的:
hostmachine $> ./getSnapshotName.sh
HERP-4.2.2-SNAPSHOT
只需逐步建立起来.首先,不需要使用-it和bash运行交互式shell,只需直接运行命令:
$ docker exec testContainer ls -l current
lrwxrwxrwx 1 root root 39 Apr 11 20:10 current -> /home/testContainer/herp-4.2.2-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
接下来,用于readlink保存您解析ls输出:
$ docker exec testContainer readlink current
/home/testContainer/herp-4.2.2-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
最后,运行它basename来删除目录部分:
$ basename $(docker exec testContainer readlink current)
herp-4.2.2-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)