2015年10月26日月曜日

Dockerで複数のコマンドを引数で渡す

Dockerで複数のコマンドを引数で渡そうとして、たとえば、
docker run -it centos:6 ls -lah;pwd
としても、lsしか実行されません。pwdはDockerサーバ側で実行されます。&&にしても同じです。
まぁよく見ればわかるのですが、これは"docker run -it centos:6 ls -lah"と"pwd"を続けて実行しているだけですね(汗

かといって、
docker run -it centos:6 "/bin/ls -lah"
としてみても、exec: "/bin/ls -lah": stat /bin/ls -lah: no such file or directoryとなぞのエラーを返します。
これ、方法が分からなくて地味に悩んだのですが、さすがTwitter。即回答が帰ってきましたw
というわけで、
docker run -it centos:6 sh -c "cd ~/;ls -lah;cd /tmp;pwd;ls -lah"
のように、sh -c で渡すと実行できます。

0 件のコメント:

コメントを投稿