2017-01-26 7 views
0

dockerの実行コマンドで--entrypointを使用してイメージを実行している間に、ドッキング画像のエントリポイントを変更できます。私は起動時にいくつかの引数をつけて私のイメージでスクリプトを始めたいと思っています。起動時にスクリプトを実行するドッカーを得ることができますオーバーライドドッカーのエントリポイントの引数

docker run -it --rm --entrypoint /my/script/path.sh my-docker-image 

スクリプトに引数を渡すにはどうすればよいですか?

この画像が作成された元のドッカーファイルは変更できません。また、この画像を基に他のドッカー画像を作成したいとは思いません。

答えて

2

あなたドッカーイメージがDockerfileを介して、または--entrypointとコマンドラインで提供するいずれか、ENTRYPOINTを持って、イメージ名の後にdocker run、コマンドライン上の任意の引数には、エントリポイントスクリプトに渡されます。例えばので

、私はmyscript.shで、このようなスクリプトがある場合:

#!/bin/sh 
echo "Here are my arguments: [email protected]" 

をそして私はこのようなイメージを実行します。

$ chmod 755 myscript.sh 
$ docker run -it --rm -v $PWD/myscript.sh:/myscript.sh \ 
    --entrypoint /myscript.sh alpine one two three 

を私は出力が表示されます。

...エントリポイントスクリプトは何もしないため、コンテナは終了します。ここではalpine(これは最小のドッカー画像)を/bin/sh(ほとんどの場合)のDocker画像に置き換えることができます。私は、この例の目的のために新しいイメージを作成したくなかったので、私は、容器の中に私のホスト上でスクリプトを実装するために、この例では-v引数を使用してい

$ docker run -it --rm -v $PWD/myscript.sh:/myscript.sh \ 
    --entrypoint /myscript.sh centos one two three 
Here are my arguments: one two three 

注:たとえば、 。あなたは明らかにイメージに同様のスクリプトを書き込むことができます。

詳細については、ENTRYPOINTのドキュメントをご覧ください。

関連する問題