【Dockerコンテナ徹底解説】~インストールからDocker対応AIツールまで

Dockerコンテナとは?
通常、あるツールやアプリを動かすには「OSの設定・依存ライブラリ・Python・CUDAのバージョン」などを細かく合わせる必要があります。そして、それぞれのツールが独自に環境を構築するため、ツールが増えるほどPCの中がごちゃごちゃになりがちです。
こうした複雑な環境構築の手間に頭を悩ませる方も多いでしょう。そんな中で、これらの問題を一つにまとめてスッキリ管理できるのが「Dockerのコンテナ」です。
では、実際にDockerを導入すると何がどう変わるのか?これから具体的に見ていきましょう。
目次
【前提】通常の導入(venv使用)の場合
Stable Diffusion(例:AUTOMATIC1111)を入れると…
C:\AI\stable-diffusion-webui\
├── venv\ ← Python仮想環境(重い)
├── webui-user.bat
└── その他スクリプトやモデル この venv の中にライブラリや依存関係(PyTorch、Gradioなど)全部が入る
➡ ローカル環境に少なからず影響を与えます(Python競合など)
【Docker導入の場合】
DockerでStable Diffusionを導入すると…
C:\AI\stable-diffusion-docker\
├── docker-compose.yml
├── models/ ← 既存モデルをコピーして再利用OK
└── volumes/ venvは作成されません。
代わりに DockerがPython環境ごと仮想的に用意してくれます。
PCにはPythonもPyTorchも直接インストール不要(←ここが凄い)
Docker上の仮想環境だけで完結。削除もワンクリックで可能!
この様に、Dockerは「仮想のPC(コンテナ)」を素早く・軽く・安全に作れる仕組みです。
通常なら手動で行う面倒な環境構築(Python・PyTorch・依存ライブラリの準備)を、“レシピ”のようなDockerイメージにまとめておけます。
同じツールを複数人で使う(再現性が大事)場合にもとても役立ちます。
※Dockerコンテナは「必要な環境をまるごとパッケージした、持ち運びできるミニPC」のような環境です。
再インストールの内容(Docker版)
Dockerを使って既存ツールを動かす場合は、基本的に「再インストール」になります。
今あるvenv版とは別フォルダにDocker用の環境を構築するイメージです。
必要なもの
- Docker Desktop(初回のみインストール)
- Docker用のツール構成(例:AUTOMATIC1111(
docker-compose.ymlなど)
すでにあるモデル(例:model.ckptやLoRAなど)は再利用OK!
モデルフォルダだけマウントすれば、わざわざ再ダウンロードしなくても使えます。
Dockerでの(例:Stable Diffusion・AUTOMATIC1111)起動方法の違い
① venv版の場合
webui-user.batをダブルクリックして起動- Windowsのローカル環境のPython仮想環境(venv)を使って動かす
② Docker版の場合
Dockerコンテナの中にPython環境やWebUIがすべて含まれているので、ローカルのPythonやvenvは関係なく動作します。起動・停止はDockerコマンドやDocker Desktopで管理します
webui-user.batは使いません- コマンドプロンプトやPowerShellで以下のようにDockerコマンドを使います
docker-compose up※またはDocker DesktopのGUIからコンテナを起動・停止もできます(すごく便利!)
Dockerを使うと変わること
| 項目 | 従来(venv / Anaconda) | Docker使用時 | 補足 |
|---|---|---|---|
| 環境構築 | 自分で手作業(依存関係に悩む) | docker-compose up で一発 | 構築ミス・Pythonバージョン違いなどを回避 |
| PythonやCUDAの競合 | 起こりがち | 起こらない(完全隔離) | PC内の別プロジェクトと干渉しない |
| 移動・共有 | 再設定が必要 | Dockerファイルを渡せば即動く | 複数PCや他人との共有がスムーズ |
| 動作の安定性 | OS依存(Win/Macで動かないことも) | 同じDockerなら100%動く | 特にLinux上で強い |
| 学習コスト | venv/AnacondaだけでOK | Dockerの基本コマンドを知る必要あり | 初心者にはちょっとハードルあり |
| GPU使用 | 環境構築で手間取ることが多い | NVIDIAの設定さえ合えば安定 | Docker+GPUサポート環境が必要 |
環境構築に必要なもの
GPUドライバPC側にNVIDIAドライバ(CUDA対応)が入っていること(Windows/Linux)
Docker + GPU拡張Docker Desktop + NVIDIA Container Toolkit(自動で入ることが多い)
デメリット
- 初回はちょっと学習コストがある
- Docker Desktopはリソースを少し使う(特にWindows)
Dockerを使うと「環境構築の失敗リスクが激減」し、「どこでも同じように動く」ようになります。
ただし、その代わりに Dockerの仕組みやコマンドの理解が少しだけ必要です。
本格的にAIツールを運用・検証・展開していきたい場合、Docker環境への移行は非常におすすめです。特に以下に当てはまるなら、Dockerは有力な選択肢です
- 仮想環境の管理や依存関係の衝突に困っている
- 複数のプロジェクトやツールを切り替える必要がある
- 将来的にサーバー移行(RunPodやLinuxなど)を考えている
- ほかの人と同じ環境を再現したい(記事・GitHub配布など)
Dockerのメリットと注意点
| 項目 | メリット | 注意点 |
|---|---|---|
| 再現性 | Dockerfileやdocker-composeで環境を固定できる | Docker未経験だと最初は学習コストあり |
| 分離性 | ホスト環境に一切影響しない | GPU利用にはNVIDIA Container Toolkitが必要 |
| 移植性 | 作った環境を別PC・クラウドに簡単に移せる | WindowsではWSL2との連携が前提になる |
| メンテ性 | Anacondaやvenvの煩雑さから解放される | GUIアプリやファイル共有の設定がやや手間 |
Docker対応のツールはどんどん増えている
AI系のツールは、以下のように環境構築が面倒なものが多いですよね・・・
- Pythonバージョンの違い
- CUDAのバージョン依存
- ライブラリの競合(PyTorch, OpenCVなど)
そこで Dockerを使えば、そのツール専用の環境をまるごと用意できるので、CUDAバージョンの制約もコンテナ内で解決でき、「環境構築しなくても、誰でも同じように動かせる!」というメリットがあります。
環境構築不要で「誰でも同じように」使えるという理由から、Docker対応のツールはどんどん増えています。
両者の違い
Dockerは「アプリと環境をまるごと箱に詰めて起動する仕組み」です。
venvでやっていた「Python環境の分離・管理」は、Dockerがもっと強力に肩代わりしてくれます。
その為、Dockerを使うと「venv自体が不要になります」
| 比較項目 | venv方式 | Docker方式 |
|---|---|---|
| Pythonの管理 | 自分で仮想環境を構築 | DockerがPython環境ごと提供 |
| ローカル環境への影響 | ややある(依存が混ざることも) | ほぼゼロ(完全に分離) |
| 削除のしやすさ | venvフォルダ削除でOK(でも残骸が) | Dockerコンテナ削除で完全に消える |
| 導入難易度 | 中〜やや易(Python経験必須) | やや高(Docker操作に慣れる必要あり) |
| 複数環境の共存 | 管理が煩雑 | すごく簡単(同じツールの複数バージョンもOK) |
複雑な環境(Python + CUDA + ライブラリ)を1コマンドで用意できる
自分のPCを汚さずに、仮想的な「使い捨ての実験環境」が作れる
Docker Desktop が使う主なリソース
| 種類 | 内容 | Dockerでの影響 |
|---|---|---|
| RAM(メモリ) | 実行中のデータを一時的に保持する領域 | 最も影響大。2~6GB以上使うことがある。 |
| CPU | 計算処理を行うパーツ | コンテナ実行時に使用。高負荷タスクではCPU使用率が上がる。 |
| ストレージ(ディスク) | Dockerイメージやコンテナの保存 | 初期は数GB程度。モデルやログで肥大化しやすい。 |
| GPU(オプション) | Stable Diffusionで画像生成など | WSL2 + Docker + NVIDIA Container Toolkit が必要。設定が少し複雑。 |
特にRAMについて
- Docker Desktop自体が常駐で2GB程度使用
- 画像生成用のコンテナ(Stable Diffusionなど)を動かすと 4~6GB以上必要になるケースが多い
- PCに搭載されているRAMが 8GB以下の場合は厳しいことも
- 16GB以上あると安定しやすい
Step 1:Docker Desktopをインストール(GUIで操作OK)

移行する場合のステップ
- WSL2 + Docker Desktop(Windows) のセットアップ
- GPUサポートのための NVIDIA Container Toolkit のインストール
- 既存ツールのDocker版(またはDockerfile)を調査
例:ghcr.io/bmaltais/kohya_ss:latest(公式Docker)など docker-compose.ymlを書いて、永続データ(LoRAデータ、モデル、画像)をvolumesで接続- 起動・検証 → 問題なければ段階的に引っ越し
公式サイトから自分のOSに合ったDockerをダウンロード:Docker公式サイト
CPUのアーキテクチャ
Docker などでイメージを選ぶときに、自分のPCに合ったアーキテクチャのイメージを選ぶ必要があります。
| アーキテクチャ | 説明 | 主なデバイス |
|---|---|---|
| AMD64 | Intel/AMD製の一般的な64bit PC用 | Windows PC、Intel Mac、ゲーミングPC など |
| ARM64 | モバイルや省電力向けCPUの64bit版 | Apple M1/M2 Mac、Raspberry Pi など |
自分のPCがどちらか確認する方法
● Windows の場合
- スタートメニュー → 「設定」 → 「システム」 → 「バージョン情報」
- 「システムの種類」を確認
x64 ベース プロセッサ→ AMD64ARM ベース プロセッサ→ ARM64
● Mac の場合
- Apple メニュー()→ 「このMacについて」
- Intel Core i7/i9 など → AMD64
- Apple M1/M2/M3 → ARM64
Windowsの人:WSL(Linux仮想環境)が自動で導入されることが多い
Macの人:Apple Silicon/M1の場合はそれに対応したバージョンを選ぶ
インストール後、Docker Desktopを起動しておきましょう!
Step 2:コマンドを打たずに「Hello, Docker!」
Dockerはコマンド操作が基本ですが、まずはGUIで使ってみましょう!
- Docker Desktopを開く
- 上部メニューの「Containers / Apps」で右上の「+ Add Container」をクリック
- 「hello-world」と入力して作成!
これだけで、「Hello from Docker!」というメッセージが出る小さなコンテナが立ち上がります。
Step 3:AI関連ツールの体験(Real-ESRGANやGFPGANなど)
次に、実用的なツールを触ってみたい場合は、GitHub上でDocker対応済みのものを使うのが近道です!
例: Real-ESRGANのDocker版
docker run --gpus all -v ${PWD}:/workspace real-esrgan…といった形ですが、最初は「GUIで使えるDockerツール」や「Colabで試せる代替手段」もおすすめです。
Step 4:(余裕が出たら)Dockerの基本コマンドを学ぶ
最初は下記3つだけ覚えましょう。
| コマンド | 意味 |
|---|---|
docker pull イメージ名 | Docker Hub などから環境(イメージ)を取ってくる |
docker run イメージ名 | イメージを基にコンテナを起動する |
docker exec | コンテナ内でコマンドを実行する |
最低限のコマンド
| コマンド | 何をする? |
|---|---|
docker ps | 動いているコンテナの一覧を表示 |
docker stop コンテナID | コンテナを止める |
docker-compose up | docker-compose.yamlで一括起動 |
docker-compose down | 一括停止&ネットワークなどの後片付け |
最も簡単な始め方セット
- Docker Desktopをインストール&起動
- 「hello-world」で動作確認(GUIでもOK)
- 公式やGitHubにあるDocker対応AIツールを試す
- 少しずつコマンドや概念を覚える
Dockerはとても便利ですが、以下のような新しい用語や考え方を理解する必要があります
| 内容 | 学習ポイント(例) |
|---|---|
| Dockerって何? | 仮想環境を「コンテナ」という単位で扱う仕組みを理解する |
| イメージとコンテナの違い | 「設計図(イメージ)」から「実体(コンテナ)」を作るという概念 |
| Dockerfile | 環境構築の手順をスクリプトで書く方法 |
| コマンド操作 | docker run, docker build, docker exec, docker-compose などのコマンドに慣れる必要 |
| ボリュームやネットワーク設定 | ローカルとコンテナ間のファイル共有、通信の扱い方なども少し知識がいる場合あり |
| GPU対応(NVIDIA環境) | CUDAと連携してGPUを使うには、ドライバや nvidia-docker のセットアップも必要 |
よくある「つまづきポイント」
docker runしたらエラーが出る…原因がよくわからない- GPUが認識されない(CUDA周りの設定が必要)
- コンテナ内でファイル編集しにくい(ホストとの連携が面倒)
- イメージが重い(数GB)ので、最初のダウンロードに時間がかかる
でも一度慣れると…
- 複雑な環境も一発で再現可能
- 誰でも同じ環境で動作確認できる
- 「環境構築でつまずく」ことが激減する
最初のうちは「GUIでDockerを扱えるツール」や「用意されたDocker環境を使う」ことから始めると、かなり楽になります!
- Docker Desktop(GUI)
- Hugging Face や GitHub上で公開されてる Docker対応済みプロジェクト
- ノーコードでDockerを触れるツール(例:Portainerなど)
自分のPC(ローカル)に、Docker本体をインストールし、その上でコンテナを動かす
インターネット上(オンライン)から、コンテナのレシピ(イメージ)を取得するだけ。
実際の処理や実行はローカルで行う
1. Docker自体はローカルで動作
Dockerをインストールすると、PCの中に「仮想空間(コンテナ)」を作れるようになります。
たとえば:
docker run myapp-imageこのコマンドは「自分のPC上」で myapp-image を実行しています。
2. オンラインは「素材を拾いに行く場所」
- 実行に必要なDockerイメージ(設計図みたいなもの)は、
DockerHubやGitHub
※ただし、それは最初の一度きり。その後はローカルでずっと使えます。
たとえるなら…
Docker = 料理できる自分のキッチン(ローカル)
Dockerイメージ = レシピ(ネットで拾ってくる)
実際の調理 = 自分のPCの中でやる
GUIとの関係は?
Docker自体は **CLIベース(コマンドライン操作)**ですが、Dockerで立ち上げたアプリがWeb UIを持つように作られていれば、ブラウザで操作することも可能です。
たとえば「InvokeAI」や「AUTOMATIC1111版のStable Diffusion」などは、DockerでもGUIが使えます。
| 特徴 | 内容 |
|---|---|
| Dockerとは? | 必要な環境ごとアプリを“箱”に詰めて持ち運べる技術 |
| 使う意味 | 面倒なセットアップが不要で、どこでもすぐ動く |
| 使用感 | コマンドで動かすが、GUI付きのものもある |
| どんなツールで使える? | 公式がDocker対応してる or 有志が作ったイメージが使える |
Dockerが使えるツールはたくさんあります!
とくに AI画像処理系のツールやライブラリは、最近ほとんどがDocker対応しています!
Docker対応の人気ツール
| ツール名 | 説明 | Docker対応 |
|---|---|---|
| CodeFormer | 顔の補完・復元に特化 | 対応Dockerあり(CUDA 11.8) |
| GFPGAN | 顔の高画質化 | 公式Dockerあり |
| Real-ESRGAN | 全体の超解像処理(顔以外も) | Docker化プロジェクトあり |
| Stable Diffusion | AI画像生成 | 多数のDocker実装あり(AUTOMATIC1111など) |
| InsightFace | 顔認識ライブラリ(リアル顔交換系) | Docker対応プロジェクトあり |
| Deforum / AnimateDiff | 動くAIイラスト | Dockerで動かす人多い |
| ComfyUI / Fooocus | GUI付きStable Diffusion | Docker対応ビルドあり |
「Dockerが使えるか?」の調べ方
各ツールの GitHub ページを見て、READMEなどにこういう記載があればOKです
## Docker
docker build -t mytool .
docker run -it --gpus all mytoolあるいは Dockerfile や docker-compose.yml というファイルがあれば、高確率で対応しています。
venvの削除方法(アンインストール)
Docker版のツールやアプリが動作確認できたら、venv版は削除してOKです。
仮想環境(venv)はインストーラーで入れたものではなく、単なるフォルダ構造ですので、アンインストーラーなどは存在しません。フォルダごと削除すれば「完全アンインストール」
例:C:\AI\StableDiffusion\venv の中身を削除
C:\AI\StableDiffusion\
├── venv ← ❌ これを削除
├── webui-user.bat など
└── その他必要なら、プロジェクトフォルダごと(例:StableDiffusion/)削除してしまっても大丈夫です。
削除前の注意点
以下は残したい or Dockerに引き継ぎたいデータです
- モデル(
model.ckpt、safetensorsなど) - LoRA、VAE、VAE Decoderなど
outputsフォルダ(生成画像)
これらはDocker用に再利用できるので、削除前に別フォルダへコピーしておくと安心です。
さらにキレイにしたい場合(Pythonやvenv関連)
C:\Users\Owner\AppData\Local\Programs\Python\PythonXXX(※不要になったPythonの削除)- 環境変数に設定された
PYTHONPATHやPathの掃除 - pipやPythonによりインストールされたパッケージの削除
ここまでやると本当にキレイになりますが、他にPython使う予定があるなら残しておいてOKです。
OSまるごと仮想化(コンテナ or 仮想マシン):Docker類似ツール
| ツール名 | 特徴 | 用途 |
|---|---|---|
Docker | 軽量なOS単位のコンテナ | 開発・本番問わず大人気 |
Podman | Dockerと似てるけどroot不要 | セキュアな運用をしたい時に |
Vagrant + VirtualBox | 仮想マシンの自動構築 | OS単位で再現したい時 |
WSL2(Windows) | Windows内でLinuxが使える | Linux環境構築に最高 |
Singularity | HPC向けのコンテナ | 研究用途などでGPU活用も可能 |
SAKASA AI

ローカルCLI(Pythonスクリプト)の為の【PyTorch+CUDA】のインストール手順 | SAKASA AI PyTorch + CUDA のインストール GPUとCUDAの互換性を確認する方法 PyTorch・Stable Diffusion・ComfyUI など、GPUを使うAIツールを動かすときは「GPUがCUDAに対応している…
