paperspace用のDockerイメージを自作する@pytorch2.4.1+cuda12.4にする
Paperspaceでは、最初にプロジェクトを立ち上げる際にAdvanced optionでコンテナイメージを指定することができます。
過去記事でも、他の方がDocckerHubで公開されているものを使用して、cuda12.4の環境にしています。
ただ、その場合、pytorch2.3+cuda12.1がプリインストールされているため、修正のコマンドを実行する手間がかかります。
ということで、自分が使用したい環境にすることを目指して、コンテナイメージを作成してみることにしました。
多分、すぐ忘れてしまいそうなので備忘録的に内容を記事にしています。
dockerは今回初めて使用しましたので、用語/用法は稚拙/間違っている可能性がありますがご了承ください。
<基本的な手順>
①Dockerhubにアカウントを作成する:無料
②Docker Desktop on Windowsをインストール:windowsPC
③Dockerfileを作成する
④イメージをビルドする
⑤Dockerhubにアップロードする
それぞれの手順について順を追って記載します。
①Dockerhubにアカウントを作成する:無料
右上のsign upから進める
ここはgoogleアカウントで作成しました。パスワードとか考えるのが面倒なので、とても楽
②-1:Docker Desktop on Windowsをインストール:windowsPC
ここからPCにインストールします。
ただ、これだけだと不十分なので、以下のコマンドを行います。
②-2:WSL2をインストールする
以下をコマンドプロンプトでインストールします。
wsl --install
②-3:PCを再起動すると使用することが出来るようになります。
③-1:Docerfileを作成する。
元々のイメージを引用する方法もあるようですが、その方法を使用するとイメージに記載した内容は削除されず、項目を追加するだけしかできません。
そのため自分で作成してみるのが良いかもしれません。
Docerfile自体はテキストエディターで作成します。
保存時にすべてのファイル形式にして拡張子をdockerfileにします。
③-2:Docerfileの内容作成について
方法は、もともとのイメージの中で使用したいコマンド、追加したいコマンドを入れ込んだDocerfileを作成するというものになります。
ただ、何をすればよいのか分かりませんでしたので
私がやってみた方法は以下です。
<参考にするイメージのコマンドをコピペする>
例えば上記のコンテナイメージをよく使用しているのですが、Layerという項目をクリックすると、右側にコマンドが表示されます。
これをテキストファイルに必要なLayerのところをコピーや修正して記載します。
それをGPTに見直してもらうと、なんだかいい感じに配置してくれたりします。その際にいろいろと削除されたりするので、注意が必要です(経験済)。
④Dockerイメージの作成
必要な構成の記載が終わったら以下のようなコマンドでイメージをビルドします。
これはDockerファイルがあるフォルダでコマンドプロンプトを使用するとできますが、うまくファイルを認識しない場合は下のように指定します。
docker build -t ユーザー名/イメージ名:タグ .
docker build -t shibashiba2/paperspace-gradient-base-pytorch241:v1.0 -f dockerfile.dockerfile .
※このビルドは時間がかかります。
30分ぐらいはかかりました。
今回のDockerイメージ作成の際に何回かエラーがありましたが、Cudaがらみのインストールがうまくいかない事象が2回ほど続きました。
⑤-1:Dockerhubにイメージをアップロードする
Dockerイメージをビルドする際に、Dockerhubにアップロード出来るように名前とタグを作成しておきます。
⑤-2:Docerhubのサイトにアクセスして「アクセストークン」を取得します
画面右上のアイコンをクリックして「Account settings」を選択
SecurityのPrivate asccess tokenを選択
「Generate new token」で以下の設定にします。
作成すると、ログイン用のコマンドとパスワードが表示されます。
注意点はパスワードは入力しても表示されないということです。
そのため、コピペしたら表示はされていませんがエンターで進めるかんじになります。
⑤-3:ログイン後に自分のレポジトリにアップロードします
これも時間がかかりました。およそ1時間程度。
ログインの後に、docker pushの後にアップロードしたいものを記載するとアップロードが始まります。
docker push ユーザー名/イメージ名:タグ
⑥Paperspaceでの活用
前回記事にある、コンテナイメージのところに記入するのは以下です。
shibashiba2/paperspace-gradient-base-pytorch241:v1.0
このDockerイメージを使用して立ち上げたインタンスの内容は以下です。
Pytorchのバージョンとpythonのバージョンは期待した内容でした。
このDockerイメージを作成する際にパイソンモジュールを色々とインストールすることは出来ますが、ちょっと面倒なのでそれはしていません。
取り合えず、このコンテナを使用してpaperspaceでComfyUIはこのインスタンスで立ち上げることが出来ました。