Windows11 に Docker CE を導入する
Windows11
に Docker CE
を導入したので備忘録を残します。
Docker とは
Docker
とはコンテナ技術を用いて仮想環境を開発・実行するための管理ツールです。
コンテナ技術とは、ホスト OS 上でアプリケーションの実行環境を構築する技術です。
下記の記事がわかりやすいです。
というわけで、Docker
を Windows
に導入していきたいのですが、Docker Desktop for Windows
は商用利用するために有料のサブスクリプションが必要になります。
なので今回は WSL
という、Windows
環境内で Linux
カーネルを実行する仕組みを利用して無償版の Docker CE(Community Edition)
を導入します。
利用環境
- Windows11 pro
手順
- WSL を有効にする
- MicrosoftStore から Ubuntu を入手する
- Ubuntu に docker を導入する
WSL をインストールする
WSL
(Windows Subsystem for Linux
) とは、Windows
の OS
で Linux
向けのバイナリを動かすための仕組みです。
WSL
には、 WSL1
と WSL2
があります。
WSL1
は Linux
カーネルを使用せず、Linux
システムコールを Windows
API に変換するため利用することができないソフトウェアが存在する場合もあるそうです。
一方で、WSL2
は仮想マシン上に本物の Linux
カーネルを動作させるため互換性の向上があった反面、メモリの消費量が増加したり、起動に時間がかかるなどのデメリットもあるようです。
WSL のインストール
まずは WSL
を Windows11
に導入します。
コマンドプロンプト(PowerShell でも大丈夫です)で、以下のコマンドを実行する。
wsl --install
再起動を求められるので、一度 PC
を再起動してください。
WSL2 を有効にする
続いて WSL2
を有効にします。
コマンドプロンプト(PowerShell でも大丈夫です)で、以下のコマンドを実行する。
wsl --set-default-version 2
バージョン確認
コマンドプロンプト(PowerShell でも大丈夫です)で、以下のコマンドを実行する。
VERSION
の欄が 2 になっていればOKです。
wsl -l -v
#または
wsl --list --verbose
Ubuntu を導入する
続いて Ubuntu
を PC
にインストールします。
MicrosoftStore から Ubuntu をインストールする
MicrosoftStore
を開き、Ubuntu
と検索し、Ubuntu 22.04.3
をインストールします。
Ubuntu にて一般ユーザーを作成する
コマンドラインのタブから Ubuntu
を選択して開きます。
ここでユーザー名とパスワードを設定するように促されますので、画面の指示にしたがってユーザーを作成してください。
Ubuntu 22.04 を WSL のデフォルトに設定する
インストールした Ubuntu 22.04
をデフォルトに設定します。
コマンドプロンプト(or Windows PowerShell) での以下を実行します。
wsl --set-default Ubuntu-22.04
Docker を Ubuntu にインストールする
いよいよ、Ubuntu
に Docker
を導入していきます。
基本的には、公式のガイドとこちらのガイドに沿って導入していきます。
Docker のインストール
# 古いパッケージの削除
sudo apt-get remove docker docker-engine docker.io containerd runc
# パッケージの更新
sudo apt-get update
# 関連パッケージのインストール
sudo apt-get install ca-certificates curl gnupg lsb-release
# Docker の GPG キー(暗号化ツールのキー)をインストール
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Docker のリポジトリ情報を apt に追加しパッケージとして利用することができるようにする
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 確認と更新
sudo apt-get update
# Docker CE のインストール
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Linux ホストマシンの設定
root
ユーザーとして利用できるように設定する
非 # docker というグループユーザーを追加する
# ※自動的に追加されている場合があります
sudo groupadd docker
# 現在ログインしているユーザーを docker グループに追加する
sudo usermod -aG docker $USER
ここまで完了したら変更を反映させるために、一度コマンドラインを閉じて再度起動してください。
WSL 起動時に Docker が起動するようにする
コマンドプロンプト(PowerShell でも大丈夫です)で、以下のコマンドを実行する。
WSL
バージョンが 0.67.6
以上であれば OK です。
wsl.exe --version
コマンドラインで、Ubuntu
を開き、以下のコマンドを実行します。
cat /etc/wsl.conf
[boot]
systemd=true
上記のように表示されれば問題ありませんが、ない場合は追記する必要があります。
# エディタを開く
vi /etc/wsl.conf
# i キーを押下して INSERT モードを起動
# 上記 [boot] 行と systemd=true 行を追記する
# esc キーを押下して INSERT モードを終了する
# :wq と入力してファイルを保存して終了する
参考
Docker
Docker について
WSL について
Docker 導入方法について
さいごに
今回、Docker
を導入した目的は「Dockerfile
で環境を管理することで、各開発環境におけるバージョンの統一・管理を楽にしたい」です。
今さら触ってみましたがめちゃ便利でした。
ゆくゆくは本番環境へのデプロイや AWS Lambda
へのデプロイなども試していきたいです。
Discussion