Docker コンテナー
Docker コンテナーは、対応するイメージのランタイムインスタンスです。 PyCharm は、 Docker 実行構成 を使用して、Docker イメージをビルドし、コンテナーを実行するコマンドを実行します。
Docker プラグインを有効化
この機能は Docker プラグインに依存しており、PyCharm にはデフォルトでバンドルされ有効になっています。 関連機能が利用できない場合は、プラグインが無効になっていないことを確認してください。
Ctrl+Alt+S を押して設定を開き、 を選択します。
インストール済み タブを開き、 Docker プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。
既存のイメージからコンテナーを実行する
以前に プルまたは ビルドした 、ローカルに存在する Docker イメージからコンテナーを実行できます。
サービス ツールウィンドウで、イメージを選択して
をクリックするか、コンテキストメニューから Create Container を選択します。

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

完了したら、 実行 をクリックして新しい構成を起動します。
これにより、 Docker イメージ実行構成 が作成されて開始されます。
Dockerfile からコンテナーを実行する
コンテナーを実行する Dockerfile を開きます。
ガターの
をクリックし、この Dockerfile からコンテナーを実行することを選択します。

これにより、デフォルト設定で Dockerfile 実行構成 が作成および開始されます。最初に Dockerfile に基づいてイメージを構築し、その後にこのイメージに基づいてコンテナーを実行します。
カスタム設定を使用して実行構成を作成するには、ガターで をクリックし、 New Run Configuration… を選択します。 ビルドされたイメージのカスタムタグ、コンテナーの名前、Dockerfile を読み取るコンテキストフォルダーを指定できます。 コンテキストフォルダーは、たとえば、Dockerfile の範囲外にあるアーティファクトをイメージのファイルシステムに追加したい場合に役立ちます。
コンテナーとの連携
作成されたコンテナーは、 サービス ツールウィンドウに一覧表示されます。 デフォルトでは、 サービス ツールウィンドウには、実行されていないコンテナーを含むすべてのコンテナーが表示されます。 停止したコンテナーをリストから非表示にするには、ツールバーの をクリックし、 Docker を選択してから、 Stopped Containers をクリックしてチェックボックスを削除します。
コンテナーを選択すると、対応する Docker 実行構成 によってコンテナーの作成および開始時に生成されたデプロイログを表示する Build Log タブを表示できます。

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

詳細については、 コンテナーダッシュボード を参照してください。
実行中のコンテナー内でコマンドを実行する
サービス ツールウィンドウで、コンテナー名を右クリックし、 Exec をクリックします。
Run Command in Container ポップアップで、 Create and Run… をクリックして、新しいコマンドを作成して実行します。
または、以前に実行したコマンドを選択することもできます。
Exec ダイアログでコマンドを入力し、 OK をクリックします。 例:
ls /tmp/tmp ディレクトリの内容を一覧表示する
mkdir /tmp/my-new-dir/tmp ディレクトリ内に my-new-dir ディレクトリを作成する
/bin/bashbashセッションを開始する
詳細については、 docker exec(英語) コマンドリファレンスを参照してください。
実行中のコンテナーに関する詳細情報の表示
サービス ツールウィンドウで、コンテナー名を右クリックし、 インスペクション をクリックします。
出力は、 インスペクション タブに JSON オブジェクトとして表示されます。

詳細については、 docker inspect(英語) コマンドリファレンスを参照してください。
コンテナー内で実行中のプロセスの表示
サービス ツールウィンドウで、コンテナー名を右クリックし、 Show Processes をクリックします。
出力は、 プロセス タブの JSON 配列としてレンダリングされます。
詳細については、 docker top(英語) コマンドリファレンスを参照してください。
コンテナー出力にコンソールをアタッチする
サービス ツールウィンドウで、コンテナーを右クリックし、 接続 をクリックします。
コンソールは、コンテナー内で実行されている ENTRYPOINT(英語) プロセスの出力に接続され、 Attached Console タブで表示されます。
詳細については、 docker attach(英語) コマンドリファレンスを参照してください。
コンテナー内のファイルを参照する
サービス ツールウィンドウで、コンテナーを右クリックし、 ファイルの表示 をクリックします。
PyCharm はコンテナーで
lsコマンドを 実行し 、コンテナーのファイルシステムを持つ ファイル タブを開きます。
ファイル タブでは、任意のファイルをダブルクリックしてエディターで表示できます。 PyCharm はファイルを読み取り専用モードで開くため、編集や削除はできません。
Work with project files in a container
You can open projects in a Docker container and also view the recently opened ones.

Open a project in a container
Open a project that contains
Dockerfile.Open
Dockerfileand clickin the left gutter to run the project on Docker.
サービス ツールウィンドウで、コンテナーを右クリックし、 Open Project | Select Directory をクリックします。
Alternatively, on the tab, click プロジェクトを開く.
In the window that opens, select the directory you want to open and click OK.
Select where to open your project and confirm that you trust it. The project will open, and you can continue working with it.
Open recent projects in a container
In the サービス tool window, right-click the container, click Open Project | Recent Projects, and select the one you want to open.
Alternatively, on the tab, click プロジェクトを開く drop-down and then click 最近のプロジェクト. Then select the one you want to open.
The list of the recent project files is also available on the IDE Welcome screen, and you can open it even if your main Docker project is closed.
SELinux でマウントをバインドする
ホストマシンが SELinux(英語) を使用している場合、セキュリティモジュールにより、コンテナー内で実行されているプロセスがマウントされたファイルやディレクトリにアクセスできなくなる可能性があります。 これを回避するには、マウントされたファイルとディレクトリに :z オプションを使用してラベルを付けます。 詳細については、「SELinux ラベルを構成する(英語) 」を参照してください。
Docker コンテナーを実行する際、PyCharm は /bin などの最上位ディレクトリを除き、ホストマシン上のすべてのボリュームバインドに :z フラグを自動で追加できます。
バインドマウントに SELinux ラベルを適用する
Ctrl+Alt+S を押して設定を開き、 を選択します。
Apply :z mount option to almost any bind volume for SELinux systems. を選択します。
