Windowsでwebアプリを開発する機会がありました。
普段はmacで開発しているので、ここ最近Windows用の開発環境は作る機会がありませんでした。
しかも、以前と構築方法が変わっているため、導入手順を見直す必要がありました。
さて、
今回はwindowsで開発環境を立ち上げる方法について触れます。
検証環境
項目 | バージョン |
---|---|
Windows | Windows 10 バージョン1909 |
Docker Desktop | 3.0.0 |
Docker Desktopをインストール
公式からDocker Desktopをインストーラーをダウンロードします。
ダウンロード後にインストーラーを起動し、案内に沿ってインストールします。
Windows Subsystem for Linux 2 を導入
DockerはLinux用のツールなので、本来Windowsでは使用できません。
そのため、Windows Subsystem for Linux (以下、wsl)を使用してDockerを動かします。
wslのインストール
まずはwslをインストールします。
インストールは下記で詳しく記載されています。
docs.microsoft.com
内容が重複してしまいますので、本記事では割愛しますが、手順通り実行すればインストールできます。
詳しくは公式ページを参照してください。
wsl のバージョン変更
Docker Desktopではwsl のバージョン2を使用する事が前提です。
下記のコマンドでバージョンを変更します。
> wsl --set-default-version 2
既にインストール済みの場合、下記の変更は忘れないようにしてください。
Docker Desktopを起動する
インストールが完了したら、Docker Desktopを起動します。
下記のマークが表示されればdocker
コマンドが使える状態です。
起動すれば、以降はターミナルからdocker
コマンドを使えるようになります。
> docker -v Docker version 20.10.0, build XXXXXX
尚、初期状態であれば、PCが起動すると自動で立ち上がるようになります。
localhostでブラウザ表示してみる
ローカルホストとDockerを80番ポートで繋いで、ブラウザから表示できるか確認します。
Docker Desktop の初期起動画面でも出てきますが、docker/getting-started
と言うチュートリアル用のイメージを使用します。
> docker run -d -p 80:80 docker/getting-started > dokcer ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b6b1204a9810 docker/getting-started "/docker-entrypoint.…" 54 seconds ago Up 52 seconds 0.0.0.0:80->80/tcp awesome_cohen
起動させた状態で、下記にアクセスするとブラウザでコンテナ内のWebコンテンツが見れる事を確認出来ます。
これで、Windowsでもdockerでweb開発環境が使える下準備が出来ました。
Docker Toolbox からDesk Desktop に乗り換える
以前は、Dokcer Toolbox と言うツールを使って環境を立ち上げていました。
しかし、現在では非推奨です。
Deprecated
Docker Toolbox has been deprecated and is no longer in active development. Please use Docker Desktop instead. See Docker Desktop for Mac and Docker Desktop for Windows.
もし、環境が古い場合はDocker Toolboxをアンインストールする必要があります。
アンインストール手順は下記を参考にしてください。
上記の他に行ったアンインストール作業
私も以前Toolboxを使用していたので乗り換えから始めたのですが、私の環境ではアンインストール後にdocker
コマンドを実行すると次のエラーが発生しました。
unable to resolve docker endpoint: open C:\Users(ユーザー).docker\machine\machines\default\ca.pem: The system cannot find the path specified.
原因はDokcerとDocker Toolboxの固有な環境変数が、Toolboxの設定に依存していたようです。
- DOCKER_CERT_PATH
- DOCKER_HOST
- DOCKER_MACHINE_NAME
- DOCKER_TLS_VERIFY
- DOCKER_TOOLBOX_INSTALL_PATH
Docker Toolboxをアンインストールしても、関連する環境変数は削除されない場合があるようなので、 直接環境変数を初期化してしまいます。
> SET DOCKER_CERT_PATH= $null, "User" > SET DOCKER_HOST= $null, "User" > SET DOCKER_MACHINE_NAME= $null, "User" > SET DOCKER_TLS_VERIFY= $null, "User" > SET DOCKER_TOOLBOX_INSTALL_PATH= $null, "User"