ドッキング・コンテナを実行すると、CMD配列の最初の要素(python実行可能ファイル)を受け取り、後続のパラメータを無視しているように見えます。Docker runコマンドENTRYPOINTが存在するときにDockerfile CMDの一部を無視する
Dockerfile:
FROM ubuntu:14.04
ENTRYPOINT ["/bin/bash", "-c"]
CMD ["/virtualenv/bin/python", "/mycode/myscript.py", "--param1"]
実行]コマンド:
$ docker run --rm -it --volume $(pwd)/..:/mycode --volume mycontainer-virtualenv:/virtualenv mycontainer
出力:私は--detach
代わりの-it
を実行する場合
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
同じことが起こります。私はオーバーライドドッキングウィンドウの実行パラメータとしてCMDを実行した場合
同じも起こる:
$ docker run --rm -it --volume $(pwd)/..:/mycode --volume mycontainer-virtualenv:/virtualenv mycontainer /virtualenv/bin/python /mycode/myscript.py --param1
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
私はbashの入った容器を実行して、bashプロンプトからCMDを実行した場合、それが正常に動作します:
$ docker run --rm -it --volume $(pwd)/..:/mycode --volume mycontainer-virtualenv:/virtualenv mycontainer bash
[email protected]:/# /virtualenv/bin/python /mycode/myscript.py --param1
Hello world!