(上級)dockerでまとめて導入

Last-modified: 2023-12-13 (水) 20:43:34

対象読者

Dockerで環境構築したい人、Gitの操作が分かる人。

前準備

仮想化支援機能の確認

Ctrl+Shift+Esc でタスクマネージャを起動。
「パフォーマンス」タブのCPUを開き、右下の「仮想化」が有効かどうかを確認する。
有効ならそのまま次へ。無効だったら以下の手順で有効化する。

仮想化支援機能の有効化

コマンドプロンプト管理者として実行して shutdown /r /fw /t 1 を実行してUEFI画面に入る。*1
UEFI(BIOS)画面に入ったら、CPUがIntelなら「Intel Virtualization」、AMDなら「SVM Mode」とかそんな感じの項目を探してEnableに切り替え、設定を保存して再起動。
これで仮想化支援機能が有効になる。

【注意点】
UEFI(BIOS)画面の配置はマザーボードのメーカーごとにまるで異なるので、「(マザーボードのメーカー) VT 有効化」などでググって確認すること。
MSIはOverclockでCPUの設定を深掘りしたら見つかった……。

WSL2の導入

まず https://aka.ms/wsl2kernel から最新のカーネルモジュールをダウンロードしてインストールする。
次に、コマンドプロンプト管理者として実行して wsl --install を実行。

メモリー(RAM)が16GBの場合

メモリー(RAM)が16GBの場合は、WSLのメモリ使用上限を変更する必要があります。
(デフォルトでは全16GBの半分の8GBしか利用できません。
メモリ不足の場合、dockerコマンド実行時に「exited with code 137」で終了してしまいます。)

「C:\Users\<あなたのユーザー名>\」フォルダに「.wslconfig」という名前のファイルを作成し、
下記の2行を書き込み保存してください。

[wsl2]
memory=12GB

ファイル保存後、設定を有効化するためにWindowsの再起動を行ってください。
(Windowsの再起動を行わなくても wsl --shutdown コマンドでWSLのみ再起動することでも設定が有効化されます。
しかし、あなたがWSLに詳しくない場合は、余計なトラブル回避のためWindowsの再起動をオススメします。)

参考: https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/FAQ#other-build-errors-on-windows

Dockerの導入

https://docs.docker.com/desktop/install/windows-install/
上のURLの「Docker Desktop for Windows」からインストーラをダウンロード。
「Enable WSL 2 Features」とか「Use WSL 2 instead of Hyper-V」とかそんな感じの項目にチェックをいれながら指示に従ってインストールする。

【注意点】
Docker Desktopが起動していないと docker コマンドも使えないので注意。
なんかエラーが出るときはDockerが立ち上がってるかどうかをまず確認する。

Docker Desktopの設定画面(右上の歯車アイコン)から「Start Docker Desktop when you log in」にチェックを入れておくとPC起動時に勝手に起動するようになる。

WebUIを導入

以下のコマンドを実行して下準備をする。

git clone https://github.com/AbdBarho/stable-diffusion-webui-docker

cd stable-diffusion-webui-docker

docker compose --profile download up --build

モデルのダウンロードを挟むのでしばらく放置。
10GB以上は容量を食うのでカツカツのストレージでやらないように。

ダウンロードが終わってターミナルの操作が戻ったら、以下のコマンドでWeb UIを立ち上げる。
2回目以降の起動時はこちらのコマンドのみで良い。

docker compose --profile auto up --build

初回起動時はWebUIの環境構築が走るので時間がかかる。
ちなみにここでの「auto」は「AUTOMATIC1111」の意味。他のWebUIを使いたい場合はここを「invoke」か「sygil」に書きかえる。

起動が完了したら http://localhost:7860 でWebUIに入れる。

もしモデルを追加したい場合は、stable-diffusion-webui-docker\data\StableDiffusion に配置する。

終了させるとき

ターミナルでCtrl-Cをすれば自動的に終了処理が始まるので、終わるまで少し待つ。
Windows Updateなどで再起動するとどうなるかわからないので、使っている間はWindows Updateされないように設定しておくことを推奨。


*1 もし使えなかった場合は普通にシャットダウンした後、メーカーごと所定のキー(Delete等)を連打しながら起動。