Docker のトラブルシューティング
JetBrains は、 Docker プラグインの修正と改善に常に取り組んでいます。 既知の Docker の問題と機能リクエストのリスト(英語)をバグ追跡システムで見つけて、最も影響を受けるものに投票できます。 独自のバグや機能リクエストを提出することもできます。
次の問題のいずれかが発生した場合は、対応する推奨される解決策を試してください。
- IntelliJ から Docker デーモンに接続できません。
以下を確認してください:
詳細については、 Docker 接続設定 を参照してください。
- Docker Compose でマルチコンテナー アプリケーションを実行できません。
設定 ダイアログ Ctrl+Alt+S の で Docker Compose 実行可能ファイルが正しく指定されていることを確認してください。 詳細は、 Docker 接続設定 を参照してください。
- Unix ソケット設定経由で Ubuntu 上の Docker Compose が動作しません。
Ubuntu で Docker Compose を実行すると、次のエラーメッセージが表示されます。
docker.errors.TLSParameterError: Path to a certificate and key files must be provided through the client_config param. TLS configurations should map the Docker CLI client configurations.この場合、 エンジン API URL フィールドで
unix:///var/run/docker.sockを指定した TCP ソケット 接続を使用します。 詳細は、 TCP ソケット を参照してください。- ポートバインディングを使用できません。
対応するコンテナーポートが公開されていることを確認してください。 EXPOSE コマンドを Dockerfile で使用してください。
- レジストリからイメージを取得できません。
レジストリから Docker イメージを取得しようとすると、次のメッセージが表示されます。
Failed to parse dockerCfgFile: <your_home_dir>/.docker/config.json, caused by: ... {"credsStore":"wincred"}この場合、 <your_home_dir>/.docker ディレクトリに移動し、 config.json ファイルを削除します。
- Dockerfile および Docker Compose ファイルを正しい型と関連付けできません。
デフォルトでは、IntelliJ IDEA は名前と内容によって Dockerfile および Docker Compose ファイルを識別できるはずです。 これにより、補完候補、インスペクション、ガターアイコンなど、これらのファイルのさまざまなコーディング支援機能が有効になります。 IntelliJ IDEA がファイルを認識しない場合は、ファイルの種類を手動で指定するように求められます。 既存のファイルを正しいタイプに関連付けるには、 プロジェクト ツールウィンドウでそのファイルを右クリックし、コンテキストメニューから ファイルタイプと関連付け… を選択します。
ファイルタイプと関連付け… アクションが無効になっている場合は、ファイル名が他のファイルタイプのパターンとして登録されている可能性があります。 例: テキストファイルとして認識されるカスタム名を持つ Dockerfile がある場合、それを Dockerfile タイプに関連付けることはできません。 ファイルタイプパターンを削除するには、次の手順を実行します。
Ctrl+Alt+S を押して設定を開き、 を選択します。
該当するファイルタイプ(この場合は テキスト )を選択し、ファイル名でパターンを削除します。
変更を適用するには、 OK(O) をクリックします。
コンテキストメニューで ファイルタイプと関連付け… を使用して正しいファイルタイプを設定できるようになりました。
- サービス経由で Docker に接続すると高い CPU 使用箇所が発生します。
Windows で Docker サービスのバックエンドとして Hyper-V を使用している場合、ウイルス対策ソフトウェアが Hyper-V の仮想ディスクファイル ( .vhdx ) を継続的にスキャンします。これにより、コンテナが実行されていなくても、CPU リソースが過剰に消費される原因となります。
この場合、Hyper-V 仮想ディスクファイルをウイルス対策スキャンから除外します。