【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ドライバ
Docker + GPU拡張 Docker Desktop + NVIDIA Container Toolkit(自動で入ることが多い)
デメリット
- 初回はちょっと学習コストがある
- Docker Desktopはリソースを少し使う(特にWindows)
Dockerを使うと「環境構築の失敗リスクが激減」し、「どこでも同じように動く」ようになります。
ただし、その代わりに Dockerの仕組みやコマンドの理解が少しだけ必要です。
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)


: 公式サイトから自分の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 メニュー(
- Intel Core i7/i9 など → AMD64
- Apple M1/M2/M3 → ARM64
)→ 「このMacについて」
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活用も可能 |

