IntelliJ IDEA 2024.1 ヘルプ

Docker コンテナー

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

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

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

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

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

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

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

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

  2. コンテナーの作成ポップアップで、作成をクリックします。

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

  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 を選択してから、停止したコンテナーをクリックしてチェックボックスを削除します。

Services tool window - Docker - filter

コンテナーを選択すると、コンテナーの作成および開始時に対応する 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. IntelliJ IDEA はコンテナー内で ls コマンドを実行し、コンテナーのファイルシステムでファイルタブを開きます。

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

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

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

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

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

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

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

    Binding for SELinux systems

関連ページ:

Docker 実行構成

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

プラグインのインストール

プラグインは IntelliJ IDEA のコア機能を拡張します。例: プラグインをインストールして、次の機能を取得します。バージョン管理システム、課題追跡システム、ビルド管理サーバー、その他のツールとの統合。さまざまな言語とフレームワークのコーディング支援サポート。ショートカットのヒント、ライブプレビュー、ファイルウォッチャーなど。新しいプログラミング言語を学ぶのに役立つコーディング演習。プラグイン設定を開くを押して設定を開き、を選択します。マーケットプレースタブを使用して、JetBrains...

Docker イメージ

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

Docker イメージ実行構成

このタイプの構成を使用して、以前にプルまたはビルドしたローカルに存在するイメージから Docker コンテナーを実行します。Docker は、次の構文で docker 実行コマンドを使用します。docker run [OPTIONS] IMAGE [COMMAND] [ARG...]Docker イメージ実行構成のオプションを使用して、このコマンドのすべての引数を設定できます。デフォルトでは、Docker イメージ構成には以下のオプションがあります。名前実行構成の名前を指定して、編集または実行時に...

Dockerfile 実行構成

このタイプの構成を使用して、Dockerfile からイメージを構築し、このイメージからコンテナーを派生させます。Docker は、docker ビルドコマンドを使用して Dockerfile からイメージをビルドし、次に docker 実行コマンドを使用してそこからコンテナーを開始します。デフォルトでは、Dockerfile 構成には以下のオプションがあります。名前実行構成の名前を指定して、編集または実行時に他の構成の間ですばやく識別できるようにします。複数のインスタンスを許可するこの実行構成の複...

サービスツールウィンドウ

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