1
/
5

Windows10 Home+WSL2でLinux(CentOS7)を動かす

弊社エンジニアブログからの転送です
詳しくは
https://www.aska-ltd.jp/jp/blogs
をご覧ください。

WSL2を使用すればWindows10 HomeでもLinuxを動かせるようになったので、今回はDockerを動かしたいと思います。

また、Visual Studio Codeを使用すると、全ての作業をVisual Studio Code上で完結させることができるので、その方法についても説明します。

参考サイト
https://docs.docker.jp/docker-for-windows/wsl.html

Dockerコンテナを動かすまでの流れ
Docker Desktop for Windowsのインストール Visual Studio Codeのインストール Visual Studio Codeの拡張機能のインストール WSL2+Visual Studio Codeによる開発 Docker Composeによるコンテナ起動
Docker Desktop for Windowsのインストール
次のサイトからStable版のDocker Desktop for Windows(Docker Desktop Installer.exe)をダウンロードします。

https://hub.docker.com/editions/community/docker-ce-desktop-windows

Docker Desktop Installer.exeを実行して「Enable WSL2 Windows Features」にチェックが付いているのを確認してインストールを進めます。

インストールが成功すると次の画面になるので、「Close and log out」ボタンを押下してPCをログアウトします。押下した瞬間、問答無用でログアウトしてしまうので注意して下さい。

次にログインするとDockerのチュートリアル画面が表示されます。「Skip tutorial」をクリックしてチュートリアルをスキップして、ウィンドウも閉じて下さい。

なお、タスクトレイにdocker desktopのアイコンがあるので、そこからDockerに関する設定変更を行うことが可能です。

次にPowerShellを起動して、「docker-desktop」と「docker-desktop-data」のディストリビューションが追加されていることを確認します。

PS > wsl -l -v
NAME STATE VERSION

  • CentOS7 Running 2
    docker-desktop-data Running 2
    docker-desktop Running 2
    Visual Studio Codeのインストール
    参考サイトの中でWSL2とDockerをバックエンドに使用した開発では、Visual Studio Codeの使用がオススメされているので、次のサイトからインストーラーをダウンロードしてきてVisual Studio Codeをインストールします。

https://code.visualstudio.com/download

Windows版のインストーラーには「User Installer」と「System Installer」の2種類があります。

インストールしたユーザだけが使用する場合は「User Installer」、全ユーザで使用する場合は「System Installer」を選択します。

普通であれば「User Installer」をインストールして問題ないと思います。

Visual Studio Codeの拡張機能のインストール
WSL2インストール後にVisutla Studio Codeを起動すると、次のようなメッセージとともに拡張機能(Remote - WSL)のインストールを促されるので、そのままインストールします。

Windows Linux Subsystem (WSL) がシステムにインストールされているため、'Remote - WSL' 拡張機能をお勧めします。

もしメッセージが表示されない場合は、「拡張機能」ビューの検索ボックスから「Remote - WSL」を探してインストールして下さい。

最低限「Remote - WSL」さえインストールしていればVisual Studio CodeからWindowsとWSLのシームレスな開発が可能になります。さらに「Remote - Containers」もインストールすればVisual Studio Codeから直接Dockerのコンテナを起動できたり、コンテナの中に入って作業もできるらしいのですが、今回は導入をスルーしました。

あと、英語が不慣れな人はUIを日本語化するために「Japanese Language Pack for Visual Studio Code」をインストールしたほうがよいかもしれません(わたしはインストールしました( *´_ゝ`*))

WSL2+Visual Studio Codeによる開発
Visutla Studio Codeを起動すると画面の左下に「><」のボタンがあるのでそれをクリックします。

「Remote-WSL: New Window using Disto...」を選択します。

「CentOS7 (default distro)」を選択します。

新しくVisutla Studio Codeが起動します。画面の左下のボタンが「>< WSL: CentOS7」になっていることを確認して下さい。

「エクスプローラー」ビューの「フォルダーを開く」を選択、「OK」ボタンを選択すると、CentOS7上のファイル一覧が表示されます。

「エクスプローラー」ビューからWindowsのファイルを操作をしているのと同じ感覚で、CentOS7上のファイルを操作することが可能です。

Docker Composeによるコンテナ起動
Visual Studio CodeからDockerのNginxコンテナを起動するところまで行いたいと思います。

以降は全てVisual Studio Codeで行う作業になります(PowerShellでも作業可能です)

まず作業用ディレクトリとして、カレントディレクトリの下にdocker_testディレクトリを作成します。

docker_testディレクトリの中に、次の内容でdocker-compose.ymlを作成します。

version: "3"
services:
web:
image: nginx:latest
ports:
- "8080:80"
docker-compose.ymlを右クリックして「統合ターミナルで開く」を選択してターミナルを開きます。

ターミナルで次のコマンドを実行して、コンテナの作成と起動を行います。

docker-compose up -d

Creating network "docker_test_default" with the default driver
Pulling web (nginx:latest)...
latest: Pulling from library/nginx
bf5952930446: Pull complete
ba755a256dfe: Pull complete
c57dd87d0b93: Pull complete
d7fbf29df889: Pull complete
1f1070938ccd: Pull complete
Digest: sha256:36b74457bccb56fbf8b05f79c85569501b721d4db813b684391d63e02287c0b2
Status: Downloaded newer image for nginx:latest
Creating docker_test_web_1 ... done
コンテナの状態を確認します。StateがUpになっていたら問題ありません。

docker-compose ps

Name                     Command               State          Ports

docker_test_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8080->80/tcp
ブラウザから http://localhost:8080/ にアクセスして「Welcome to nginx!」のページが表示されたらOKです。

株式会社あすか's job postings

Weekly ranking

Show other rankings
Like Ryuichiro Munechika's Story
Let Ryuichiro Munechika's company know you're interested in their content