Dockerfileで使用できるビルトイン環境変数$HOSTNAME
があることを私に教えてくれた有益な情報がありました。かなりの量の検索では、そのような組み込み変数の包括的なリストを見つけることができませんでした。 Dockerfileのリファレンスでは、ENV
コマンドを使用して環境変数を変更する方法について説明していますが、今はその必要はありません。私はちょうどデフォルトで利用可能なものを知りたいです。これに関する公式の文書はありますか?私はそこにあると思うだろうとHOSTNAME
でいくつかの検索を行うことは私にそれを指摘するだろうが、サイコロ。Dockerfileビルトイン環境変数ドキュメント
答えて
デフォルトで利用可能なものを知りたいだけです。
各画像によって異なります。
docker run <image> env
または::例えば
docker inspect <image> -f '{{.Config.Env}}'
:
$ docker run ubuntu env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=71fc7d5db1f2
no_proxy=*.local, 169.254/16
HOME=/root
$ docker inspect ubuntu -f '{{.Config.Env}}'
[PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
または:
$ docker run node env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=42bbb311714a
no_proxy=*.local, 169.254/16
NPM_CONFIG_LOGLEVEL=info
NODE_VERSION=7.10.0
YARN_VERSION=0.24.4
HOME=/root
$ docker inspect node -f '{{.Config.Env}}'
[PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NPM_CONFIG_LOGLEVEL=info NODE_VERSION=7.10.0 YARN_VERSION=0.24.4]
PSあなたは変数がこれをやって、それぞれ1で定義されているかを確認することができます:実行中のコンテナでも同じことができます:
docker inspect <container-id> -f '{{.Config.Env}}'
docker exec <container-id> env
私はほとんどがhttps://github.com/moby/moby/blob/34536c498d56a0c74fab08bd434407ac4707c971/container/container_unix.go#L57-L72で起こっていると思います。私は$HOSTNAME
がドッカー固有のものだとは言いません。ほとんどのLinuxディストリビューションではよくあり、多くのスクリプト/シェルがそれを使用しています。 Dockerは起動時にホスト名変数を設定する完全なinitシステム(Ubuntuの/etc/init.d/hostname.shなど)を実行していないので、設定されていることを確認します。
tty(-t
)を指定すると、デフォルトの$PATH
と$TERM
が設定されているようです。 --link
を使用して別のコンテナ(現在廃止されている機能)をリンクすると、自分で指定できる環境変数に加えて、一連の環境変数も利用できます。 https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/#environment-variablesを参照してください。
素晴らしいもの。偶然にも、群集クラスタの実行時やオーバーレイネットワークの使用時に類似の変数が作成されているかどうかを知ることができますか?今私にとって役に立つものの1つは、ノードのIPアドレスです。環境変数に入れるだけで大変便利です。 – JimmyJames
スワームによる別の注射があるかどうかわかりません。おそらく、注入されたものを見るために、イメージに組み込まれている変数と実際の実行中の出力を比較するだけで済みます。より多くのコードを掘り下げることなく、おそらく見つけにくいでしょう(そして、すでに検索されているようにどこにも記載されていない可能性が高い)。 –
- 1. ビルド時にファイル内の環境変数をDockerfileに渡す
- 2. DockerfileはPATH環境変数を無視します
- 3. ビルド用の環境変数がDockerfileに表示されない
- 4. ビルド時に環境変数をDockerfileに渡す
- 5. 環境変数
- 6. 環境変数
- 7. 環境変数?
- 8. 環境変数
- 9. Rails環境変数
- 10. netbeans環境変数
- 11. 環境変数は
- 12. 環境変数テラフォームスクリプト
- 13. ジェンキンス環境変数
- 14. エスケープ環境変数
- 15. は、環境変数
- 16. Fedora環境変数
- 17. Spring環境変数
- 18. アトムテキストエディタ環境変数
- 19. Monodroid環境変数
- 20. WinDbg環境変数
- 21. top:Combining!環境変数
- 22. Eclipse環境変数
- 23. 環境変数を光源とする環境変数
- 24. Dockerfileで.bash_profile環境変数を設定する方法はありますか?
- 25. 環境変数とPHP
- 26. Pythonと環境変数
- 27. WindowsのPython環境変数?
- 28. Asp.Netコアホスティング環境変数
- 29. の設定環境変数
- 30. JS/Coffeescriptの環境変数
それは多くの助けになります。メモとして、私はrunコマンドのために異なった答えを得、アルパインを検査する。 runコマンドは3つの値を与え、検査はそれらのうちの1つだけを与えます。 – JimmyJames
'docker run'バージョンは' env'を実行する新しいコンテナを実行します。ドッカーがその新しいプロセスを実行して、 'docker run'パラメータ' --hostname'のために、その時点でドッカーが設定する特別な変数であるHOSTNAMEを提供しているようです。私は同じイメージに基づいて複数のコンテナとは異なるので、イメージにその変数を持つ意味がないと信じています。 – Robert
あなたは私が見つけようとしていたものの要点になっています。それは、ドッカーエンジンがそれを管理しているためにのみ知ることができる値です。私が今解決したい問題は基本的には工夫されていますが、そのコンテキストをデフォルトで提供できることは一般的には有用です。 – JimmyJames