61
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

Docker for Windows をインストールしてdocker-composeを動かすまで(Windows10)

目的・背景

  • デザイナーさんがフレームワーク環境下のテンプレート等を用意に変更できる環境を用意したかった
  • デザイナーさんは主にXAMPP等で環境構築していたため、プロジェクトにエンジニアがかかわり、フレームワーク等が入った場合にローカル環境の構築が非常に困難になってきた
  • Dockerファイルをプロジェクト関係者へ配布することにより、デザイナー全員が共通の環境でコーディングや確認ができる!それ幸せ!!と思って導入を決意
  • 当初Vagrant内へDockerを構築することも検討したが、処理速度が遅くなるのでDocker for Windowsでの構築とした

インストールした環境

  • ThinkPad X250
  • Windows10 64bit
  • Memory 8G
  • CPU intel Core i5 5200U*2

インストール

image

  • ダウンロードしたInstallDocker.msiをダブルクリックで開くとインストーラーが起動します
  • 画面の指示に従い規約への同意と起動を行います

image
image
image

  • 起動すると、Hyper-Vが有効になっていないパソコンではHyper-Vを有効にしますか?という質問画面が出ますので、OKを押してHyper-Vを有効にします(親切!!!)
  • OKを押すと少し時間がたったのちに再起動しますのでご注意下さい

image

BIOSの設定でエラー

image

image

  • Biosへ入る方法を調査
  • thinkpadの場合はこちら https://support.lenovo.com/jp/ja/solutions/ht118360
  • Intel(R) Virtualization Technologyを変更(Bios設定 > Security > Virtualization )
    • DisabledになっていたのでEnabledへ変更
    • 保存して再起動
  • 再度Windowsへログインし、タスクマネージャーから仮想化が有効になったことを確認

image

インストールできているか確認

  • Power Shellの起動(Git Bashが入っている方はGit BashでもOK)
  • インストールできているか確認
  • $ docker --help

image

インストールできてるっぽい
* docker-composeも入っているか確認
* $ docker-compose --help

image

うん、はいってる

hello world

  • $ docker run hello-worldを実行してみます

image

正しく起動してインストールできているようです

docker-composeを使ってnginxからローカルのファイルを表示する

  • nginx.local.hostにてアクセスできるようにする(httpとhttps両方アクセスできる)
  • 表示するWEBコンテンツはdocker-compose.ymlの一階層上にhtmlというフォルダ名で配置する
  • nginxのドキュメントルートは/htmlとし、docker-composeにてmountする
  • テストに使用したdocker-composeはこちらへ公開しています
  • https://github.com/YukiMatsuo/docker-compose-test
  • こちらをダウンロードして解凍して好きな場所へ移動させます

image

  • 私はDesktopへ配置しました
  • 次にPowerShellなどで配置したフォルダ内のdocker-composeフォルダへ移動します

image

  • 移動したらdocker-composeの起動を行います
  • $ docker-compose up -d
  • 以下のようなエラーが出てしまいました

image

  • Docker for WindowsではCドライブの共有設定をしていないとエラーになるケースがあるようです
  • Cドライブの共有設定はDocker for Windowsの設定画面よりSetting > Shared から設定できます

image

  • Cへチェックを入れてApplyをクリックします(設定によってはユーザーのパスワードを求められます)

エラー発生(環境によります)

image
* Firewallで445ポートへアクセスできないといわれました
* E-SETを使用していたので、E-SETのFirewallの設定を変更、445ポートの接続をIN/OUT共に許可
* 再チャレンジ・・・・
* 変わらず接続できませんでしたので、WindowsのBase Filtering Engineを停止
* コントロールパネル > 管理ツール > サービス > Base Filtering Engine
* サービスの停止を行い、PCを再起動
* 再チャレンジ・・・成功!!

エラー解消

  • 再度$ docker-compose up -dを実行します
  • 今度は443ポートが使用中と怒られました
  • $ netstat -oan で現在使用中のポートのPIDを調べます
  • NT Kernel & Systemが使用しているようなので、こちらのサイトを参考に変更します
  • http://sturnus.net/movable/faq/2013/11/xamppport-80.html
  • こちらのサイトを参考にSkypeも起動していたので変更しました
  • 再度実行 $ docker-compose up -d

image

ようやく起動してくれました◎

ブラウザでのアクセス

  • ブラウザでのアクセスを設定します
  • hostsファイルを編集し、ホスト名でアクセスできるようにします
  • C:\Windows\System32\drivers\etc
  • dockerで設定したポートはそのままlocalhost(127.0.0.1)でアクセスできるようになっているので、以下のように設定します

image

image

こちらの画面が開けばインストールおよび設定は成功です

特にはまったこと

  • docker-compose.yml内で設定したファイルがディレクトリは表示されるが、ファイルがマウントされないという状況に陥った
  • Docker for WindowsのShared Driverのユーザー名が誤っていたことが原因であったので、一度リセットして再度実行したら成功した
  • FirewallでCドライブへ接続できないPCもあった

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
61
Help us understand the problem. What are the problem?