2015-09-05 7 views
8

コンテナの内部で設定された環境変数を引数としてdocker runに渡すと、シェルが評価します。例:ドッカー実行コマンドで環境変数を使用するにはどうすればよいですか?

私のコンテナに$FOOの値が印刷されるようにします。これはbarです。これらはいずれも動作しません:あなたはシェルでechoを実行する場合

# Prints blank line 
$ docker run -e FOO=bar ubuntu echo $FOO 

# Prints '$FOO' 
$ docker run -r FOO=bar ubuntu echo \$FOO 

答えて

7

それは動作します:

$ sudo docker run --rm -e FOO=bar ubuntu bash -c 'echo $FOO' 
bar 

echoコマンド(/bin/echo)であるので、これはですが、それは、変数置換を行いシェルです。

+0

私はそれが理由だとは思わない。 'FOO =" bar "&& docker run ubuntu echo $ FOO' print bar –

+0

質問の第2部分は、変数を' \ $ FOO'としてエスケープします。 '$ FOO'が出力されます。 – z0r

+0

ああ、大丈夫です。私は最初のものを過ぎて読んでいない;) –