JetBrains Rider 2024.1 ヘルプ

Docker コンテナー

Docker コンテナーは、対応するイメージのランタイムインスタンスです。JetBrains Rider は、Docker 実行構成を使用して、Docker イメージをビルドし、コンテナーを実行するコマンドを実行します。

Docker プラグインを有効にする

この機能は、デフォルトで JetBrains Rider にバンドルされて有効になっている Docker(英語) プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。

  1. Ctrl+Alt+S を押して設定を開き、プラグインを選択します。

  2. インストール済みタブを開き、Docker プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。

既存のイメージからコンテナーを実行する

以前にプルまたはビルドした、ローカルに存在する Docker イメージからコンテナーを実行できます。

  1. サービスツールウィンドウで、イメージを選択して The Create container button をクリックするか、コンテキストメニューからコンテナーの作成を選択します。

    The Create container context menu item
  2. コンテナーの作成ポップアップで、作成…をクリックします。

  3. 表示される Docker 構成の作成ダイアログでは、構成に固有の名前を付けて、コンテナーの名前を指定できます。コンテナー名フィールドを空のままにしておくと、Docker はそれにランダムな一意の名前を付けます。

    The Create Docker Configuration dialog
  4. 完了したら、実行をクリックして新しい構成を起動します。

これにより、Docker イメージ実行構成が作成されて開始されます。

Dockerfile からコンテナーを実行する

  1. コンテナーを実行する Dockerfile を開きます。

  2. ガターの Run on Docker をクリックし、この Dockerfile からコンテナーを実行することを選択します。

    The Run on Docker popup

これにより、デフォルト設定で Dockerfile 実行構成が作成および開始されます。これにより、最初に Dockerfile に基づいてイメージが構築され、次にこのイメージに基づいてコンテナーが実行されます。

カスタム設定を使用して実行構成を作成するには、ガターで Run on Docker をクリックし、新規実行構成…を選択します。ビルドされたイメージのカスタムタグ、コンテナーの名前、Dockerfile を読み取るコンテキストフォルダーを指定できます。コンテキストフォルダーは、たとえば、Dockerfile の範囲外にあるアーティファクトをイメージのファイルシステムに追加したい場合に役立ちます。

コンテナーとの連携

作成されたコンテナーは、サービスツールウィンドウに一覧表示されます。デフォルトでは、サービスツールウィンドウには、実行されていないコンテナーを含むすべてのコンテナーが表示されます。停止したコンテナーをリストから非表示にするには、ツールバーの The Filter button をクリックし、Docker を選択してから、停止したコンテナーをクリックしてチェックボックスを削除します。

コンテナーを選択すると、コンテナーの作成および開始時に対応する Docker 実行構成によって生成されたデプロイログを表示するビルドログタブを表示できます。

The Build Log tab of a container selected in the Services tool window

ダッシュボードタブは、コンテナーに関する重要な情報を提供します。名前とハッシュ ID に加えて、環境変数、ポート、ボリュームバインディングも一覧表示されます。環境変数、ポート、ボリュームバインディングを追加、編集、削除できます。ただし、これらの変更では、コンテナーを再作成する必要があり、このコンテナーの作成に使用される Docker 実行構成では変更しないでください。これは、次回構成を実行するときに変更が保持されないことを意味します。

The Dashboard tab of a container selected in the Services tool window

詳細は、コンテナーダッシュボードを参照してください。

実行中のコンテナー内でコマンドを実行する

  1. サービスツールウィンドウで、コンテナー名を右クリックし、実行をクリックします。

  2. コンテナーでコマンドを実行ポップアップで、作成と実行…をクリックして、新しいコマンドを作成して実行します。

    または、以前に実行したコマンドの 1 つを選択することもできます。

  3. 実行ダイアログでコマンドを入力し、OK をクリックします。例:

    ls /tmp

    /tmp ディレクトリの内容を一覧表示する

    mkdir /tmp/my-new-dir

    /tmp ディレクトリ内に my-new-dir ディレクトリを作成する

    /bin/bash

    bash セッションを開始する

    The Exec tab with /bin/bash running

詳細については、docker exec(英語) コマンドリファレンスを参照してください。

実行中のコンテナーに関する詳細情報の表示

  • サービスツールウィンドウで、コンテナー名を右クリックし、インスペクションをクリックします。

    出力は、インスペクションタブに JSON オブジェクトとして表示されます。

    The Inspection tab

詳細については、docker インスペクション(英語)コマンドリファレンスを参照してください。

コンテナー内で実行中のプロセスの表示

  • サービスツールウィンドウで、コンテナー名を右クリックし、プロセスを表示をクリックします。

    出力は、プロセスタブの JSON 配列としてレンダリングされます。

詳細については、docker トップ(英語)コマンドリファレンスを参照してください。

コンテナー出力にコンソールをアタッチする

  • サービスツールウィンドウで、コンテナーを右クリックし、接続をクリックします。

    コンソールは、コンテナー内で実行されている ENTRYPOINT(英語) プロセスの出力に接続され、アタッチされたコンソールタブで表示されます。

詳細については、docker 接続(英語)コマンドリファレンスを参照してください。

コンテナー内のファイルを参照する

  1. サービスツールウィンドウで、コンテナーを右クリックし、ファイルの表示をクリックします。

  2. JetBrains Rider はコンテナー内で ls コマンドを実行し、コンテナーのファイルシステムでファイルタブを開きます。

ファイルタブでは、任意のファイルをダブルクリックしてエディターで表示できます。JetBrains Rider はファイルを読み取り専用モードで開くため、編集または削除することはできません。

SELinux でマウントをバインドする

ホストマシンが SELinux(英語) を使用している場合、セキュリティモジュールにより、コンテナー内で実行されているプロセスがマウントされたファイルやディレクトリにアクセスできなくなる可能性があります。これを回避するには、マウントされたファイルとディレクトリに :z オプションを使用してラベルを付けます。詳細については、「SELinux ラベルを構成する(英語)」を参照してください。

Docker コンテナーを実行している場合、JetBrains Rider は、/bin などの最上位ディレクトリを除く、ホストマシン上のすべてのボリュームバインドに :z フラグを自動的に追加できます。

バインドマウントに SELinux ラベルを適用する

  1. Ctrl+Alt+S を押して設定を開き、詳細設定 | Docker を選択します。

  2. SELinux システムのほぼすべてのバインドボリュームに:z マウントオプションを適用しますを選択します。

    Binding for SELinux systems

関連ページ:

Docker 実行構成

Docker 実行構成を使用して、Docker イメージを構築し、JetBrains Rider からコンテナーを実行します。例: アプリケーションのバックエンドで使用されるデータベースを使用してコンテナーを実行できます。または、アプリケーションのバイナリ、依存関係、その他の必要なファイルを使用してイメージを構築することもできます。これは、アプリケーションの「Dockerizing」と呼ばれます。Docker 実行構成を作成するメインメニューで、に移動します。実行 / デバッグ構成ダイアログで、...

Docker イメージ

Docker イメージは、コンテナーを実行するための実行可能パッケージです。Docker はレジストリを使用してイメージを配布します。デフォルトでは、JetBrains Rider は Docker Hub を使用します。これは、さまざまな Linux フレーバー、データベース管理システム、Web サーバー、ランタイム環境など、最も一般的なイメージがすべて含まれるパブリックレジストリです。他にもパブリックおよびプライベートの Docker レジストリがあり、独自のレジストリサーバーをデプロイすること...

サービスウィンドウ

サービスツールウィンドウを使用すると、実行 / デバッグ構成、アプリケーションサーバー、データベースセッション、Docker 接続など、ソフトウェア開発中に役立つさまざまなサービスを管理できます。プラグイン開発者は、IntelliJ プラットフォーム API を通じて他のサービスを追加できます。メインツールバーには、すべてのサービスタイプに共通の次のボタンとメニューが含まれています。すべて展開リスト内のすべての項目を展開します。すべて折りたたむリスト内のすべての項目を折りたたみます。グループ化サ...