<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docker on Alicey's blog</title><link>https://blog.alicey.dev/tags/docker/</link><description>Recent content in Docker on Alicey's blog</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Mon, 15 Jan 2024 21:28:33 +0900</lastBuildDate><atom:link href="https://blog.alicey.dev/tags/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>GitHub ActionsからDiscordに通知を飛ばす (Docker Push完了など)</title><link>https://blog.alicey.dev/2023/10/gha2discord.html</link><pubDate>Sat, 07 Oct 2023 18:55:00 +0900</pubDate><guid>https://blog.alicey.dev/2023/10/gha2discord.html</guid><description>&lt;p> こんにちは。&lt;br>今回はGitHub ActionsのStepからDiscordにWebhook経由で通知を飛ばして見たのでご紹介します。&lt;/p></description></item><item><title>DockerでDjango(SQLite)な開発環境を用意する</title><link>https://blog.alicey.dev/2021/08/dockerdjangosqlite.html</link><pubDate>Thu, 19 Aug 2021 02:56:00 +0900</pubDate><guid>https://blog.alicey.dev/2021/08/dockerdjangosqlite.html</guid><description>&lt;h1> DockerでDjango(SQLite)な開発環境を用意する&lt;/h1>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/16ac204b04f823bb_hu12709945454257530165.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/16ac204b04f823bb_hu12709945454257530165.webp"
 alt=""
 width="1002"
 height="420"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;/div>&lt;div>今回は、Pythonで実装されたWebフレームワークの1つである、DjangoをDockerコンテナ上で動かす環境を作っていきます。環境は以下のようになっています。本来であれば&lt;b>コンテナはなるべく軽く&lt;/b>、&lt;b>1コンテナ1アプリケーション&lt;/b>構成で作るべきだとは思いますが、今回は開発しやすさを優先して構築しています。&lt;/div>&lt;div>DBにSQLiteを利用していることや、Shellにexecして作業しているのもこの為で、コンテナに馴染みのない人でもわかりやすいことや、開発時のDBを共有しやすくするためにこの構成にしています。&lt;/div>&lt;div>もっとコンテナの特徴を生かした構成にしたい場合や、本番環境で利用したい場合は他のサイト(&lt;a href="https://docs.docker.jp/compose/django.html" rel="nofollow" target="_blank">ドキュメン&lt;/a>ト等)をご覧ください。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>Dockerバージョン&lt;/div>&lt;div>&lt;ul>&lt;li>Docker version 20.10.7, build f0df350&lt;/li>&lt;/ul>&lt;div>入れるもの&lt;/div>&lt;/div>&lt;div>&lt;ul>&lt;li>Python3.9.6&lt;/li>&lt;li>Django3.2.5&lt;/li>&lt;li>SQLite3&lt;/li>&lt;li>その他使うもの(vim, lessなど)&lt;/li>&lt;/ul>&lt;div>&lt;br>&lt;/div>&lt;/div>&lt;div>今回作成したファイルは&lt;a href="https://github.com/Alicey0719/pythonDjangoDevelopEnv" target="_blank">GitHub&lt;/a>に掲載しています。&lt;/div>&lt;div>git cloneしていただければ、そのまま動くと思います。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>使い方&lt;/h2>&lt;div>まず、git cloneでGitHubからファイルを落とします。(コードをコピペしても動きます)&lt;/div>&lt;div>&amp;gt; git clone https://github.com/Alicey0719/pythonDjangoDevelopEnv.git&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/6e9e7390875fbf04_hu6322068163805801501.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/6e9e7390875fbf04_hu6322068163805801501.webp"
 alt=""
 width="779"
 height="231"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>次に、落ちてきたディレクトリに移動し、start.shを起動します。&lt;/div>&lt;div>この際、Dockerが起動していないと動かないので注意しましょう。&lt;/div>&lt;div>&amp;gt; cd pythonDjangoDevelopEnv/&lt;/div>&lt;div>&amp;gt; sh start.sh &lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/b700e8778a764a71_hu7159808751559793198.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/b700e8778a764a71_hu7159808751559793198.webp"
 alt=""
 width="853"
 height="826"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>すると構築が始まり、しばらくすると...&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/9f4177a23a76194d_hu8311664410722720216.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/9f4177a23a76194d_hu8311664410722720216.webp"
 alt=""
 width="851"
 height="95"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>コンテナのシェルに接続されます。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/3f0c00070dc57806_hu17742677800450812187.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/3f0c00070dc57806_hu17742677800450812187.webp"
 alt=""
 width="390"
 height="450"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>意図された環境が構築されています。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>記述されている内容の解説&lt;/h2>&lt;div>1つずつ順に見ていきます。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h3>&lt;/h3>&lt;h3>&lt;ul>&lt;li>docker-compose.yml&lt;/li>&lt;/ul>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/8086075dc329e79c_hu13179720913116256235.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/8086075dc329e79c_hu13179720913116256235.webp"
 alt=""
 width="479"
 height="307"
 loading="lazy" decoding="async">
 &lt;/a>&lt;div>&lt;br>&lt;/div>&lt;/div>&lt;div>&lt;span style="font-size: small; font-weight: 400">ここでは、起動するコンテナの設定を記述することができます。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">4行目から見ていきましょう。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">4行目では、サービスの名称を"python-django"(任意の名前)と定義しています。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span>&lt;span style="font-weight: 400">5行目では、build(&lt;/span>&lt;/span>&lt;span style="font-weight: 400">ComposeFileを実行し、ビルドされるときのpath&lt;/span>&lt;span style="font-weight: 400">)するものに対して"."を指定しています。&lt;/span>&lt;span style="font-weight: 400">これはカレントディレクトリを示し、そこに置かれているDockerfileが対応します。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small; font-weight: 400">6行目では、container_nameを指定しています。そのまんまですねｗ コンテナの名前(任意)です。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">7行目では、stdin_openを指定しています。これは、&lt;/span>&lt;span style="font-weight: 400">コンテナの標準入力をオープンしたままにします。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small; font-weight: 400">8行目では、ttyをtrueにしています。これはコンテナに擬似TTYを割り当てています。これにより、コンテナが自動的に正常終了することを防ぎ、起動したままの状態を作ることができます。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small; font-weight: 400">9,10行目では、Volumesの設定をしています。これは、コンテナ内の/codeとホストPCの./codeを同一のものとして扱うような設定となります。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">11,12行目では、Portの割り当てをしています。これにより、コンテナ内の8000ポートとホストPCの8000&lt;/span>&lt;span style="font-weight: 400">ポートを同一のものとして扱えます。よって、ホストPCからlocalhost:8000のように指定すると、コンテナ上のサーバにアクセスできるようになります。&lt;br>&lt;br>&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">※djangoを実行する際に&lt;u>python3 manage.py runserver &lt;span style="color: red">0:8000&lt;/span>&lt;/u>と指定しないとコンテナ外からアクセスできません。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">&lt;br>&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">より正確で詳しい説明はリファレンスを御覧ください。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">&lt;br>&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: medium; font-weight: 400">&lt;br>&lt;/span>&lt;/div>&lt;ul>&lt;li>Dockerfile&lt;/li>&lt;/ul>&lt;div>&lt;div class="separator">&lt;a href="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/9a896e9b8d5a27c3_hu15752551789585350237.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/9a896e9b8d5a27c3_hu15752551789585350237.webp"
 alt=""
 width="509"
 height="217"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;/div>&lt;span style="font-size: small; font-weight: 400">docker-composeのbuildで呼ばれているものになります。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">1行目のFROMでは利用するイメージを指定しています。今回はPython3.9.6を利用します。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span>&lt;span style="font-weight: 400">2行目では、Pythonの環境変数を指定しています。(&lt;/span>&lt;/span>&lt;span style="font-weight: 400">非空なら標準出力・標準エラーのストリームのバッファリングを行わない&lt;/span>&lt;span style="font-weight: 400">)&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small; font-weight: 400">3,4行目ではcodeディレクトリを作成し、それをワーキングディレクトリに設定しています。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small; font-weight: 400">5行目では、ホストPCにあるrequirements.txtをコンテナ内のcodeディレクトリにコピーしています。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small; font-weight: 400">6行目でaptのパッケージ一覧を更新し、&lt;/span>&lt;span style="font-size: medium; font-weight: 400">aptでインストールするものを記述しています。(sqlite3とかvimとか) コンテナのお作法的には、apt install 後にapt cleanなどでアーカイブファイルを削除しコンテナを軽量化することが多いです(&lt;a href="https://docs.docker.jp/engine/articles/dockerfile_best-practice.html" rel="nofollow" target="_blank">参考&lt;/a>)。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">7行目で、pipをアップグレードして、8行目で&lt;/span>&lt;span style="font-weight: 400">requirements.txtにかかれているものを、pipでインストールしています。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">&lt;br>&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">本来であれば、コンテナはアプリケーションが主役であり、1コンテナ1アプリケーション等、軽い構成で作るべきだと思いますので、上記のようにアレコレ入れないほうが良いとは思います。が、作業効率化の為導入しました...&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">また、継続して利用するものであれば、なるべく全てのものに関してバージョンの固定を行うべきだと思います。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;ul>&lt;li>requirements.txt&lt;/li>&lt;/ul>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/98cdaf4fa1a821eb_hu15256599815183760606.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/98cdaf4fa1a821eb_hu15256599815183760606.webp"
 alt=""
 width="255"
 height="139"
 loading="lazy" decoding="async">
 &lt;/a>&lt;span style="font-size: small; font-weight: 400">pipでインストールするものの一覧です。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">Djangoの3.2.5やその他使いそうなものを書いていきます。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: 400">各々使用するものを入れましょう。&lt;/span>&lt;/span>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;ul>&lt;li>start.sh&lt;/li>&lt;/ul>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/a07f6661f2a2bcbf_hu9786989542199976294.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/dockerdjangosqlite/img/a07f6661f2a2bcbf_hu9786989542199976294.webp"
 alt=""
 width="501"
 height="112"
 loading="lazy" decoding="async">
 &lt;/a>&lt;span style="font-size: small; font-weight: normal">start.shではDockerコンテナを構築・起動し、シェルへ接続するまでの作業を1つで行うシェルスクリプトです。&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: normal">まず docker-compose up -d でdocker-compose.ymlファイルを元にコンテナを起動します。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: normal">この操作が成功した場合に&amp;amp;&amp;amp;の右側に書かれたコードが実行されます。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: normal">右側のコードでは、docker exec -it でpython-djangoという名前のコンテナのシェルに接続しています。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: normal">コンテナ起動時に実行するとそのままシェルに入ることができます。&lt;/span>&lt;/span>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;span style="font-size: small">&lt;span style="font-weight: normal">&lt;br>&lt;/span>&lt;/span>&lt;/div>&lt;div>参考文献&lt;/div>&lt;div>&lt;ul>&lt;li>&lt;a href="https://docs.docker.jp/compose/django.html" rel="nofollow" style="font-weight: normal" target="_blank">&lt;span style="font-size: small">クィックスタート: Compose と Django&lt;/span>&lt;/a>&lt;/li>&lt;li>&lt;a href="https://zenn.dev/hohner/articles/43a0da20181d34" rel="nofollow" style="font-weight: normal" target="_blank">&lt;span style="font-size: small">DockerのTTYって何?&lt;/span>&lt;/a>&lt;/li>&lt;li>&lt;a href="https://qiita.com/yuta-ushijima/items/d3d98177e1b28f736f04" rel="nofollow" style="font-weight: normal" target="_blank">&lt;span style="font-size: small">docker-compose.ymlの書き方について解説してみた&lt;/span>&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;/h3></description></item><item><title>機械学習基盤の構築(Ubuntu20.04+Tensorflow+Docker+GPU)</title><link>https://blog.alicey.dev/2021/08/ubuntu2004dockergpu.html</link><pubDate>Tue, 03 Aug 2021 10:01:00 +0900</pubDate><guid>https://blog.alicey.dev/2021/08/ubuntu2004dockergpu.html</guid><description>&lt;h2> なりゆき&lt;/h2>&lt;div>大学で行っている研究にて、機械学習を用いた処理を行っているのですが、学生の持っているマシン(大半がm3なMacBook)では遅すぎていつまで経っても終わらないという話が出ました。そこで、大学に機械学習のリソースをくれないかという話をしたところ、GPU搭載のゲーミングノートPCを貸していただけたので、これを使うことにしました。&lt;/div>&lt;div>（本当はGPU乗ったサーバのVM貸してほしかった.....電気代怖い....）&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>PCの詳細はこんな感じ&lt;/div>&lt;div>&lt;ul>&lt;li>CPU : Intel Core i7 9750H(6C12T 2.6GHz up to 4.5GHz)&lt;/li>&lt;li>RAM : DDR4-2400 SODIMM 32GB&lt;/li>&lt;li>GPU : NVIDIA RTX2070 Mobile&lt;/li>&lt;li>OS : Windows10Home → Ubuntu 20.04 LTS&lt;/li>&lt;/ul>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/1a6dca740247810f_hu3304391076628058705.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/1a6dca740247810f_hu3304391076628058705.webp"
 alt=""
 width="1293"
 height="920"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>OSの載せ替え&lt;/h2>&lt;div>まず、既存のWindowsをバックアップします。&lt;/div>&lt;div>SSDを載せ替えても良かったのですが、予算の関係で今回はディスクのイメージを作成しました。&lt;/div>&lt;div>詳しい内容は&lt;a href="https://blog.alicey.dev/2021/07/windowsdd.html" target="_blank">前回の記事&lt;/a>を御覧ください。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>Ubuntuのインストール&lt;/h2>&lt;div>Ubuntuをインストールします。&lt;/div>&lt;div>といっても、難しいことはなく、USBブートし画面の指示に従いインストールするだけです。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/c26ec61a3e653565_hu14426114048247843325.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/c26ec61a3e653565_hu14426114048247843325.webp"
 alt=""
 width="1064"
 height="797"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;br>&lt;/div>&lt;h2>ドライバのインストール&lt;/h2>&lt;div>ドライバ類のインストールをします。&lt;/div>&lt;div>今回は、GPUのドライバのみ手動インストールしました。&lt;/div>&lt;div>バージョンに関しては、&lt;a href="https://www.tensorflow.org/install/gpu?hl=ja" rel="nofollow" target="_blank">TensoeflowのGPUサポート&lt;/a>と照らし合わせ、&lt;/div>&lt;div>CUDA 11.4, NVIDIA-SMI 470.42.01をインストールしました。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/40b50e33b212a9e8_hu11333822182802677762.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/40b50e33b212a9e8_hu11333822182802677762.webp"
 alt=""
 width="1181"
 height="827"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>ココで1箇所ハマったことがあります。&lt;/div>&lt;div>UbuntuをSecureBootを利用する形でセットアップしたため、ドライバインストール時に見慣れない「Enrolling MOK Key」の設定が必要になります。&lt;/div>&lt;div>ドライバをセットアップし、Reboot後、見慣れない青背景の画面が出たため、何も考えずにContinueBootした所、ドライバを読み込みませんでした。気をつけましょう。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>その時参考にしたサイト: &lt;a href="https://seedoftalk.blogspot.com/2021/06/ubuntu-secureboot.html" rel="nofollow" target="_blank">UbuntuでNVIDIAドライバが動かない&lt;/a>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>Docker等の構築&lt;/h2>&lt;div>ココまで来てしまえば、後は必要なソフトウェアをインストールするだけです。&lt;/div>&lt;div>Tensorflowの場合ですと、公式に&lt;a href="https://www.tensorflow.org/install/docker?hl=ja" rel="nofollow" target="_blank">Docker&lt;/a>を利用するものと、&lt;a href="https://www.tensorflow.org/install/pip?hl=ja" rel="nofollow" target="_blank">pip&lt;/a>でのセットアップに関するものがまとめられています。&lt;/div>&lt;div>これを参考に構築します。&lt;/div>&lt;div>（需要があれば、別途記事にします。）&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>また、DockerでNVIDIA GPUを利用する際にはNVIDIA Container Toolkit(nvidia-docker2)のインストールが必要になります。&lt;/div>&lt;div>&lt;a href="https://gangannikki.hatenadiary.jp/entry/2020/09/26/200000" rel="nofollow" target="_blank">こちら&lt;/a>を参考にさせていただきました。&lt;/div>&lt;div>公式の&lt;a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit" rel="nofollow" target="_blank">ドキュメント&lt;/a>はこの辺りですね。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>docker composeを利用する場合、v1とv2でdocker-compose.ymlのGPUを指定する方法が異なりますのでご注意ください。個人的にはv2で構築することをおすすめします。&lt;/div>&lt;div>詳しくは、&lt;a href="https://matsuand.github.io/docs.docker.jp.onthefly/compose/gpu-support/" rel="nofollow" target="_blank">ドキュメント&lt;/a>をご参照ください。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>また、この辺りは、バージョンによって変化が生じやすい部分かと思われますので、環境(OSやGPU)に応じた設定を都度ドキュメント等で確認することをおすすめします。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;h2>おまけ&lt;/h2>&lt;div>せっかくゲーミングPCだからゲームしないとね？&lt;/div>&lt;div>というわけで、マイクラをプレイしておきました。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/caba0afd9f74752f_hu16241844205032627848.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/caba0afd9f74752f_hu16241844205032627848.webp"
 alt=""
 width="726"
 height="920"
 loading="lazy" decoding="async">
 &lt;/a>&lt;div>&lt;br>&lt;/div>&lt;div>僕がよくする配信+ゲームではGPUフルロード。フレームレートも落ちますね....144Hzモニタの意味....&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/82426cc5ab1153e6_hu15285195861590897201.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/82426cc5ab1153e6_hu15285195861590897201.webp"
 alt=""
 width="1031"
 height="730"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;br>&lt;/div>&lt;br>&lt;br>&lt;/div>&lt;div>というか、キー配列無茶苦茶すぎん？&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/abaf06300e8ef4a4_hu3461504936845575084.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/abaf06300e8ef4a4_hu3461504936845575084.webp"
 alt=""
 width="1600"
 height="987"
 loading="lazy" decoding="async">
 &lt;/a>&lt;br>&lt;br>&lt;/div>&lt;div>無駄にBIOSからキーボードの光り方変えられるｗ&lt;/div>&lt;div>&lt;a href="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/a17ea08e664c9044_hu6141220186596196352.webp" class="lightbox-trigger">
 &lt;img src="https://blog.alicey.dev/2021/08/ubuntu2004dockergpu/img/a17ea08e664c9044_hu6141220186596196352.webp"
 alt=""
 width="1260"
 height="900"
 loading="lazy" decoding="async">
 &lt;/a>&lt;div>&lt;br>&lt;/div>&lt;br>いろいろと癖が強いマシンだった。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>ばいち&lt;/div></description></item></channel></rss>