04.システム開発

WindowsのWSLでDocker環境を構築する

最近の仕事で、Amazon S3からファイルを取得するBashスクリプトを作成しました。そのときに、自分のパソコン環境でS3接続を検証するため、WSL(Windows Subsystem for Linux)Dockerをインストールしたので、その備忘録を残します。この記事の後編として、自分のパソコンにS3を擬似的に構築する記事も書きたいと思っています。

会社から支給されたWindowsマシンとDockerの相性が悪くて、これまでいまいち使いこなせなかったDockerですが、WindowsにWSLが搭載されてとても扱いやすくなった印象もありますので、これを機会に使いこなしていきたいと思います。

Hyper-V、WSL、仮想マシンプラットフォームを有効にする

まずはWSLをできるようにするために、「Windowsの機能の有効化または無効化」という設定画面から以下の設定を行います。

「Windowsの機能の有効化または無効化」画面の開き方

  1. コントロールパネルを起動「プログラム」を選択
  2. 「プログラムと機能」を選択
  3. 左のメニューから「Windowsの機能の有効化または無効化」を選択

該当の設定をチェック

以下のキャプチャのように設定を行う。

設定後、Windowsを再起動します。

PowerShellでコマンド実行

管理者としてPowerShellを起動し、以下のコマンドを実行します。

①WSLを有効化する

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

②仮想マシンプラットフォームのオプションコンポーネントを有効化する

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

③WSLのデフォルトバージョンを「2」に設定する

wsl --set-default-version 2

Ubuntuのインストールと設定

WSLの設定が終わったら、次はLinuxのディストリビューションである「Ubuntu」をインストールします。インストール自体はMicrosoftストアからできます。

Ubuntuをインストール

  1. 「Microsoft Store」を起動
  2. 検索窓に「Ubuntu」と入力し検索
  3. 使用したいディストリビューションを選ぶ

いくつか表示されますが、「Ubuntu」だけのものが最新版です。インストールしたいバージョンを選んだら、インストールを実行します。

Ubuntuインストール後の設定

Ubuntuをインストール後、WindowsのメニューにインストールされたUbuntuを起動すると、初期化がはじまるのでしばらく待ちます。起動後は「ユーザ名」と「パスワード」を設定しましょう。

確認と設定

これ以降は、Windowsのコマンドプロンプトで実施します。

LinuxディストリビューションとWSLバージョンの確認
wsl -l -v

→インストールされているバージョンが確認できます

Ubuntu bash起動
wsl

→これでUbuntuのbashシュルが起動でき、以降ここから作業を行います。

ダウンロード元を日本に設定
$ sudo sed -i 's/\/\/archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
$ sudo sed -i 's/\/\/us.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
$ sudo sed -i 's/\/\/fr.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list

Ubuntuの更新と再起動
更新
$ sudo apt -y update

再起動
$ sudo apt -yV upgrade

日本語をインストール
$ sudo apt install -y language-pack-ja

日本語ロケール設定
$ sudo update-locale LANG=ja_JP.UTF8

タイムゾーン変更
以下を実行すると画面が切り替わるので、「東京」に設定する。

$ sudo dpkg-reconfigure tzdata

最後の設定は任意ですが、私が実行したコマンドを記載しておきました。特に悪さはしないと思うので、設定してみてはいかがかと思います。それでは、本題のDockerをインストールしましょう!

Dockerのインストール

Ubuntuのインストール・設定まで終わったので、いよいよDockerをインストールしていきます。先に説明した「Ubuntu bashを起動した状態」から作業を行いますので、コマンドプロンプトを起動して、「wsl」コマンドを実行しておきましょう。

Docker の公式 GPG 鍵を追加

以下の2つのコマンドを順番に実行。

①
sudo apt-get update
②
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Dockerの stable (安定版)リポジトリをセットアップ

以下のコマンドを実行。見様見真似w

sudo -E add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Docker CE をインストール

以下のコマンドを実行。見様見真似2w

sudo apt-get install docker-ce

Docker-compose をインストール

以下の2つのコマンドを順に実行。もちろん、見様見真似w

①
curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
②
sudo chmod +x /usr/local/bin/docker-compose

sudoなしでDockerコマンドを実行する設定

便利になりそうなので、このコマンドも実行しておく。

sudo gpasswd -a <ユーザー名> docker
※ユーザー名は「whoami」コマンドで確認できる

まとめ

いろいろなサイトを参考にしながら、以上の手順でなんとかDockerをインストールすることができました。次はAmazon S3への接続を自分のパソコン内で検証するために、Dockerを利用した疑似S3環境構築を行っていきたいと思います。

参考にさせてもらったサイトには感謝しかありません(全部にお礼をいいたいですが、参照したサイトが多すぎるため、申し訳ないですが割愛させていただきます)。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です