Docker
為什麼我不能 cd 到帶有 docker run 的目錄?
我需要從特定目錄執行應用程序。
$ sudo docker run -P ubuntu/decomposer 'cd /local/deploy/decomposer; ./decomposer-4-15-2014' 2014/10/09 21:30:03 exec: "cd /local/deploy/decomposer; ./decomposer-4-15-2014": stat cd /local/deploy/decomposer; ./decomposer-4-15-2014: no such file or directory
該目錄肯定存在,如果我通過互動執行 bash 連接到 docker,我可以執行上述命令。
$ sudo docker run -i -t ubuntu/decomposer /bin/bash # cd /local/deploy/decomposer; ./decomposer-4-15-2014
我可以通過指定完整路徑來執行我的程序,但是它會崩潰,因為它期望從目前目錄啟動。我能做些什麼?
將您的命令作為參數傳遞給 /bin/sh,如下所示:
sudo docker run -P ubuntu/decomposer /bin/sh -c 'cd /local/deploy/decomposer; ./decomposer-4-15-2014'
您可以使用
-w
選項來更改您的工作目錄。docker run -w, --workdir="" Working directory inside the container
因此,在您的情況下,您將執行:
sudo docker run -w /local/deploy/decomposer -P ubuntu/decomposer ./decomposer-4-15-2014