【Docker】WindowsでDocker環境を構築する

Windowsでwebアプリを開発する機会がありました。
普段はmacで開発しているので、ここ最近Windows用の開発環境は作る機会がありませんでした。
しかも、以前と構築方法が変わっているため、導入手順を見直す必要がありました。

さて、
今回はwindowsで開発環境を立ち上げる方法について触れます。

検証環境

項目 バージョン
Windows Windows 10 バージョン1909
Docker Desktop 3.0.0

Docker Desktopをインストール

公式からDocker Desktopをインストーラーをダウンロードします。

docs.docker.com

f:id:nakahashi_h:20201212203759p:plain

ダウンロード後にインストーラーを起動し、案内に沿ってインストールします。

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 コマンドが使える状態です。

f:id:nakahashi_h:20201212205202p:plain

起動すれば、以降はターミナルから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コンテンツが見れる事を確認出来ます。

http://localhost/

これで、Windowsでもdockerでweb開発環境が使える下準備が出来ました。

Docker Toolbox からDesk Desktop に乗り換える

以前は、Dokcer Toolbox と言うツールを使って環境を立ち上げていました。

docs.docker.com

しかし、現在では非推奨です。

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をアンインストールする必要があります。
アンインストール手順は下記を参考にしてください。

docs.docker.com

上記の他に行ったアンインストール作業

私も以前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"

参考

qiita.com github.com

©︎2017-2018 WebSandBag