LoginSignup
7
12

More than 5 years have passed since last update.

docker for windowsをインストールしてdocker-composeまで試す

Posted at

前提

  • Windows10 Pro 64bit バージョン1803

やったこと

  • docker for windowsのインストール
  • docker-composeを試す

詳細手順

docker for windowsのインストール

docker IDを得る

docker IDが必要になるので、無い場合は作成する。
https://store.docker.com/

今回はアクセスしたらログイン状態になってたので不要だった。(dockerHubと同じ)

docker for windowsのダウンロード

Get Docker Community Edition for Windows
Docker for Windows is available for free.
Requires Microsoft Windows 10 Professional or Enterprise 64-bit. For previous versions get Docker Toolbox.

インストール実行

  • 注意書き 「Linuxコンテナの代わりにWindowsコンテナを使う」後で変えられるのでデフォルトのままにした

Use Windows containers instead of Linux containers (this can be changed after installation)

  • Hyper-Vを有効にしてもらう

「Hyper-Vが必要なので、有効にして再起動する」旨のメッセージが出るのでその通りにしてもらう
「VirtualBoxは動かなくなる」とあるので、そこは承知する

Hyper-V and Containers features are not enabled.
Do you want to enable them for Docker to be able to work properly?
Your computer will restart automatically.
Note: VirtualBox will no longer work.

  • 再起動

無事にdocker is running

インストール後の確認・プロキシ設定

  • docker searchしてみたらエラーとなった。

docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for > connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

  • docker for windows のプロキシ設定で解決

proxy.PNG

ちゃんとポート番号まで指定する
これでdocker searchなりpullなりpsなり、一通り動けるようになった

docker-composeを試す

docker-compose.ymlを準備する(とりあえずwordpress)

  • wordpress公式からdocker-compose.ymlを貰う
    https://docs.docker.com/compose/wordpress/

  • 一部を変更

    • container_nameをつけた(たぶんつけなくてもいい)
    • mysqlのvolumesをいじって、windows側からはC:\docker\dataという場所をマウントするようにした(どこでもいい)
docker-compose.yml
version: '2'

services:
   db:
     image: mysql:5.7
     container_name: wordpress_db
     volumes:
       - C:\docker\data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     image: wordpress:latest
     container_name: wordpress_app
     depends_on:
       - db
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: wordpress

volumes:
    db_data:

docker-compose up

  • docker-compose upしてみたらエラーが発生

ERROR: for wordpress_db Cannot create container for service db: b'Drive has not been shared'

関連しそうなissueを見つけたので、これの通りにやってみる。
https://github.com/Cyb3rWard0g/HELK/issues/79

  • 再度docker-compose up dockerCompose.PNG

エラーが無さそうなので、localhost:8000にアクセス。
wordpress.PNG

動いた!
あとはアカウント適当に作ってログインすればローカルのwordpressが使える。
ボリュームマウントしてるから、コンテナ停止して消してまたdocker-compose upしても、アカウント含めデータは残ってる。

データはこのようになる。
わざわざwordpressってフォルダ作ったのに、dataをマウントしたのは単なるミスです。
data.PNG

感想

  • powerShell上でdocker-compose.ymlを編集しようとした時に、viでサッと編集に入れないので不便だった。vimを入れる方法もあると思うが、VSCodeでymlとターミナルを両方開いた方が個人的にはよかった。
  • windowsからのボリュームマウントの場合も、docker-compose.ymlの書き方に特に気にすべきことは無くて簡単。
7
12
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
7
12