検索

第3章 ラベル

download PDF

ラベルを使用すると、コマンドをオプションとしてコマンドラインに追加する代わりに、コンテナーイメージにコマンドを埋め込むことができます。これらは通常、特定のコンテナーの実行に必要な複数のオプションを持つ docker コマンドであり、特権としてコンテナーを実行することが含まれます。オプションはコンテナーごとに処理され、コマンドが非常に長く、覚えにくくなる可能性があります。ラベルは、この情報を docker に提供する別の方法です。

ラベルは、Docker ですでに利用可能なメタデータ上に構築されます。このメタデータは、コンテナーを定義する .json ファイルに保存されます。Docker には、名前と値のペアをコンテナーに挿入できる機能のコンテナーやラベルビルドに名前と値のペアを配置することができる機能があります。

3.1. ラベルの例

ラベルを使用すると、コマンドラインでの長い docker コマンドの実行が容易になります。以下の例は、ラベルを理解するのに役立ちます。

ここでは、セマンティック意味を持つ "run labels" を作成します。

GPU アクセラレーションおよびピルスオーディオで Chrome ブラウザーを実行したいとします。これを実行するには、コンテナーが GPU にアクセスする必要があります。これは十分ですが、設定を検討する必要があります。X11 と Window Manager は連携しています。これは設定になります。これら 2 つのプログラムが連携するために最も効率的な方法は、プログラムが記述される大きなフレームバッファーを 1 つ作成することです。これは、以下のような非常に長いコマンドで処理されます。

$ sudo docker run -v /dev/dri:/dev/dri \
-v /dev/snd:/dev/snd \
-v /dev/shm:/shm \
-­ipc=container:foo_bar \
-­privileged -e 'DISPLAY=:0' \
-u username rhel_chrome google-chrome

これをダウンさせてみましょう。

-v /dev/dri:/dev/dri
ビデオカードコンポーネント
-v /dev/snd:/dev/snd
サウンドカードコンポーネント
-v /dev/shm:/dev/shm
共有メモリー
shm
共有メモリー
-­ipc
プロセス間の通信

container:foo_bar は、このラベルが foo_bar と呼ばれる別の実行中のコンテナーを参照することを意味します。これにより、実行中のコンテナー foo_bar が実行中のコンテナー fedora_chrome にリンクされます。この引数は、2 つのコンテナーのプロセス間通信名前空間を共有し、2 つのコンテナーが同じオブジェクトを参照し、2 つのコンテナーが同じ名前を使用してこれらのオブジェクトを参照するようにします。これは、/dev/shm で通信されるために重要になります。

共有メモリーは、プロセス間の通信を提供する 1 つの方法です。

-e 'DISPLAY=:0'
出力がどの X11 に表示されるか
-u username
これはユーザー名を指定します。
rhel_chrome
コンテナーの名前
google-chrome
コンテナーを実行するコマンド
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.