はじめに
WSL2とDockerを用いたコンテナ環境でローカルLLM(SLM)を稼働させ、CPU推論による対話環境を構築・検証した際の作業ログです。
「GPUがないPCでもLLMを動かしてみたい」という方の参考になれば幸いです。
1. 目的
Dockerコンテナ上で Ollama を稼働させ、外部GPUを使用しない「CPU推論」環境を構築すること。
2. 動作環境 & スペック
今回はNVIDIA製のGPUを使用せず、CPUの演算能力のみで推論を行います。
| 項目 | 内容 | 備考 |
|---|---|---|
| OS | Windows 11 (WSL2 / Ubuntu) | |
| 実行基盤 | Docker | コンテナ技術を利用 |
| CPU | AMD Ryzen 7 5700U | 8コア16スレッド / CPU推論を実行 |
| GPU | Radeon Graphics (内蔵) | ※今回は使用せず |
| メモリ | 16GB | あればあるほど高性能なモデルを使用できる |
3. Ollamaの導入
Ollama は、LLMをローカルで手軽に動かすためのランタイム兼管理ツールです。
Python環境への依存がなく、Go言語とC++ (llama.cpp) で実装されているため、CPU環境でも高速に動作するように最適化されているのが特徴らしい。また、いろいろな機能が標準搭載されているので初めてローカルLLMを動かす場合にはOllamaを選択するのが無難そう。
以下のDockerコマンドで環境構築を行う。
docker run -d \
-v ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollama
オプションの解説
コマンドで使用したオプションの詳細は以下の通りです。
-v ollama:/root/.ollama
- 目的: ダウンロードした巨大なモデルデータを保存
-
メリット: ホスト側を汚させない。ディレクトリはDockerの管理領域(
/var/lib/docker/volumes/ollama/_data等)に作成される。
-p 11434:11434
-
目的: ホスト(PCやブラウザ)からコンテナ内のAPIにアクセスするため。
-
ブラウザで
localhost:11434にアクセスし、Ollama is runningと表示されれば成功 -
ollama/ollama -
使用する公式Dockerイメージ
4. モデルのダウンロードと実行
Ollama公式ライブラリからモデルを取得して実行します。
今回はテスト用として、軽量モデルの gemma2:2b を使用しました。
実行方法 A:ホストから直接実行
WSLのターミナルから、Dockerコマンド経由で直接Ollamaを呼び出す方法です。基本的にはこちらを使用します。
docker exec -it ollama ollama run gemma2:2b
初回実行時について
指定したモデルを持っていない場合、初回実行時に自動的にダウンロード(Pull)が始まるので時間がかかるかも。
実行方法 B:コンテナ内部で実行
コンテナ内のシェルに入って操作する方法。
# 1. コンテナに入る
docker exec -it ollama bash
# 2. 内部で実行
ollama run gemma2:2b
動作ログ例
実際に会話した際のログ。日本語でもスムーズに応答が返ってきます。
>>> こんにちは
こんにちは! 😊
お元気ですか? 何かお手伝いできることはありますか?
>>> /bye
API経由っぽく使ってみた
curl http://localhost:11434/api/generate -d '{
"model": "gemma2:2b",
"prompt": "API経由でこんにちは!",
"stream": false
}'
>>>
{
"model":
"gemma2:2b",
"created_at":"2026-01-29",
"response":
"こんにちは! 😊
どのようなリクエストでお役に立てられるか知りたいです。
APIを使って何かをしたい場合は、教えてください。
例えば:**特定の機能を実装**:
例えば、「テキスト生成」や「質問応答」など
**データ取得**: 例えば、「最新のニュース」や「天気予報」など
**その他**: 特定の用途に合わせてどのようなAPIを使いたいのか
より具体的な情報をお知らせいただけると、より的確な回答ができます。 😉
}
このようにAPI経由でLLMとの対話を行うことができるので、アイデア次第でいろいろなことができると思います。
5. 操作コマンドまとめ
| 動作 | コマンド / 操作 |
|---|---|
| 対話モード開始 | docker exec -it ollama ollama run [モデル名] |
| 対話終了 |
/bye または Ctrl + d
|
| モデル一覧確認 | docker exec ollama ollama list |
| コンテナ停止 | docker stop ollama |
| 容量確認 |
docker system df (Local Volumesを確認) |
6. 補足
モデルデータの保存構造について
-v オプションでマウントしたボリューム内(/root/.ollama/models)にモデルデータが保存されます。
(ファイル名はハッシュ化されており、人間が直接読める形式ではありません。)