はじめに
Docker 初心者向けに、Windows 環境にて WSL2 を用いてローカルPCの Docker で Web アプリを動作させる手順を紹介します。
WSL2を有効にする
Windows で Docker を利用するために初心者向けで分かりやすいのは Docker for Windows ですが、そちら個人利用は無償ですが、企業としての利用は有償化されるようなので、今回は WSL2 を使います。
WSL2 とは Windows Subsystem for Linux 2 の略称で、Windows上で Linux を仮想的に動かすことができるシステム環境のことです。
管理者として PowerShell を起動して、以下のコマンドを実行するとWSL2 が有効になります。
wsl --install
上記コマンドが完了するまで数分かかります。完了後にPC再起動が必要です。
コマンド完了して再起動後、下図のようにスタートメニューに「Ubuntu」というものが追加されています。
なぜ「Ubuntu」というメニューが追加されているかというと、WSL2 では Ubuntu という Linux ディストリビューション が採用されているので、WSL2を有効にすると Ubuntu が利用できるからです。
「Linuxディストリビューション」というのは何かというと、Linuxカーネルとその他ソフトウェア群を1つにまとめ、利用者が容易にインストール・利用できるようにしたもののことです。
スタートメニューの「Ubuntu」を実行すると、ターミナルが立ち上がります。
そこで Ubuntu で使用する UNIX ユーザー名とパスワードの設定を求められるため、任意の文字列を設定します。
Ubuntu ターミナルにて cat /etc/os-release
を実行すると、下図のようにUbuntuのバージョンが確認できます(PC名は黒塗りしています)。
Docker Engine と Docker Compose のインストール
以下のページに書いてあるコマンドを貼り付けて、UbuntuにDocker Engine と Docker Compose をインストールします。
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
上記ページに書いてある赤枠部分のコマンドは、基本的にまとめて貼り付けても動作するようですが、私はそれぞれでエラーが出ないのか確認したかったので、1行ずつコマンドを貼り付けて実行しました。
インストール後、sudo docker version
というコマンドを実行することで Docker Engine のバージョンを確認できます。
Webアプリを Docker で動作させる
今回はWebアプリの例として、TimeTracker NX というプロジェクト管理ツールを利用します。
TimeTracker NX を Dockerで動作させるための手順は、以下のページの「クイックスタート」に書いてあります。
https://hub.docker.com/r/densocreate/timetracker
上記のクイックスタートには、SQL Server を利用する場合と PostgreSQL を利用する場合の2パターンがあります。
今回は SQL Server を利用する方法でやります。
また、図のように「任意のディレクトリに以下の内容で compose.yml ファイルを作成します」と書いてありますが、それが具体的に何をするのかを説明します。
これは、Ubuntu ターミナルで UNIX コマンドを用いて任意のディレクトリを作成し、そのディレクトリの中に compose.yml ファイルを作成すれば良いのですが、Windows に慣れている人は Windows の操作でそれをやりたいと思います。
そこで Windows の操作でやる方法を紹介します。
まず、前提として、Ubuntu ターミナルを立ち上げた直後のカレントディレクトリは、自分の Windows の PC の \\wsl.localhost\Ubuntu\home\ユーザー名
というパスになります。
PC名を黒塗りしていますが、下図のカレントディレクトリが、上記パスになります。
エクスプローラーのナビゲーションウィンドウに、Linux という項目が追加されているので、下図のようにそこから辿ると見つけやすいです。
エクスプローラーを用いて、上記フォルダに任意のフォルダを作ります。
今回は「TTNX」というフォルダを作りました。
そのフォルダの中に、compose.yml を作ります。
compose.yml ファイルの中身は、Windowsのメモ帳などで編集します。
クイックスタートで、your password と書かれている3箇所は、任意の文字列に変更してください。これは SQL Server の sa という管理者向けアカウントのパスワードとして利用します。
ここまでを Windows の操作で行った後で、最後に Ubuntu ターミナルで下図のように
cd TTNX
コマンドで compose.yml があるフォルダに移動してから
sudo docker compose up -d
コマンドを実行すれば、Dockerコンテナが起動します。
この状態で http://localhost:8080/
にアクセスすると、下図のように TimeTracker NX というWebアプリの画面が表示されます。
まとめ
本稿の手順通りに実行すれば、Docker の初心者でも Web アプリをローカルPCの Docker で動作させられると思います。
ちなみに私はITエンジニア向け情報誌「Software Design」の2022年5月号から「ハピネスチームビルディング」を題材に連載記事を書いています。Web上でも以下で公開しています。
X(旧Twitter)でも役立つ情報を発信しますのでフォローしてもらえると嬉しいです → @kojimadev