1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Windows上にDocker環境を構築する

Posted at

はじめに

業務でWindows上にDocker環境(Docker Desktop)を一から構築する機会があったので、その際のメモを備忘録としてまとめてみました。

前提条件

  • WSL2がインストールされていること。
    • Windows11にWSL2を導入する場合は、こちらの手順が分かりやすいと思います。

Dockerアカウントの作成

  • pricingのページから「Personal」の「Get Started now」をクリックします。
  • [Create your account]の画面で、必要な情報を入力して[Sign up]を押します。
    • 今回はGoogleアカウントでDockerのアカウントを作成しました。

image.png

ダウンロードとインストール

  • Docker Hubのページから[Download for Windows]のボタンを押して、Docker Desktopのインストーラーをダウンロードします
  • インストーラーを起動して、デフォルト設定でインストールします。
    • [Use WSL 2 instead of Hyper-V (recommended)]と[Add shortcut to desktop]にチェックが入っていることを確認して下さい。

docker_install_01.png

  • インストールが成功したら、[Close and restart]を押してOSを再起動します。

初期設定

  • 再起動後にDockerを起動すると、初期設定のウィザードが開始されます。
  • 最初に[Docker Subscription Service Agreement]と書かれた画面が現れるので、[Accept]を押します。

docker_setup_01.png

  • Dockerの設定はデフォルト設定(Use recommended setting)で[Finish]します。

docker_setup_02.png

  • 「Welcome to Docker Desktop」と書かれた画面で[Sign In]を押してサインインします。

docker_setup_03.png

  • ここまでの設定が終わると、Docker Desktopが使える状態となります。

docker_setup_04.png

コンテナの作成

  • Dockerが正常に動くかどうかを確認するため、試しにコンテナを作って動作確認をします。

イメージのダウンロード

  • PowerShellで以下のコマンドを実行して、Dockerの動作環境のテンプレートとなるイメージをダウンロードします。
    • 今回はブラウザを使って動作確認出来る「httpd」というイメージを使いました。
PowerShell
PS> docker pull httpd
  • ダウンロード完了後に以下のコマンドを実行すると、以下のようにhttpdというイメージが表示されます。
PowerShell
PS> docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
httpd        latest    ac45b24b92cc   8 weeks ago   167MB
  • イメージのダウンロードが完了すると、Docker Desktopの[Images]画面にもダウンロードしたイメージが表示されます。

image.png

コンテナの作成と実行

  • ダウンロードしたイメージ(httpd)を使って、以下のコマンドでhttpd_testという名前のコンテナを作成・実行します。
    • -pというオプションは「コンテナのポートをホストに公開する」という意味で、-p 10088:80という部分は、「ホスト(※ここではWindows機)の10088番ポートをコンテナの80番ポートと紐付ける」ということになります。
    • -itというオプションについては、こちらの記事で解説されています。
PowerShell
PS> docker run --name httpd_test -p 10088:80 -it httpd
  • コンテナの作成・実行が完了後に以下のコマンドを実行すると、以下のようにhttpd_testというコンテナが起動していることが分かります。
PowerShell
PS> docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED         STATUS         PORTS                   NAMES
9abbc1b05840   httpd     "httpd-foreground"   9 minutes ago   Up 9 minutes   0.0.0.0:10088->80/tcp   httpd_test
  • コンテナの作成・実行が完了すると、Docker Desktopの[Containers]画面にもダウンロードしたイメージが表示されます。
    • この画面で[Port(s)]列の10088:80をクリックすると、デフォルトのブラウザが起動してApacheのテストページが表示されます。
    • 直接URLを入力する場合はhttp://localhost:10088となります。

image.png

注意点

  • ポート番号の紐付けは任意のポート番号を利用できますが...
  • 以下のように「ホストの10080番ポートをコンテナの80番ポートと紐付ける」形で設定すると、ブラウザからhttp://localhost:10080にアクセスしても 「ERR_UNSAFE_PORT」 と表示されてしまいます。
    • これはChromeやEdgeで起きる現象で、「NAT Slipstreaming攻撃」を防ぐためのセキュリティ強化策だそうです。
    • 10080番ポートを開放する方法もあるようですが、素直に他のポートを使った方が安心だと思います。
PowerShell
PS> docker run --name httpd_test -p 10080:80 -it httpd

参考URL

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?