Help us understand the problem. What is going on with this article?

windows7へのDockerとlodgeのインストール方法

More than 3 years have passed since last update.

Dockerログ

Docker公式ホームページ
https://www.docker.com

作成日

2016年12月5日

環境

  • Windows 7 Professional 64-bit
  • Docker toolbox version 1.12.3, build 6b644ec
  • docker-compose version 1.8.1, build 004ddae
  • docker-machine.exe version 0.8.2, build e18a919
$ docker version
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 23:26:11 2016
 OS/Arch:      windows/amd64

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 23:26:11 2016
 OS/Arch:      linux/amd64

Dockerのインストール

公式Docker toolboxインストールガイド

メモ

最新のDocker for windowsは、Windows 10 ProfessionalまたはEnterprise 64-bitのみ利用可能。

  • インストーラを実行する。
  • デフォルトの設定ではデスクトップ上に、Docker QuickStart shellとKitematicのショートカットが作成される。

lodgeのインストール

  • Docker QuickStart shellを起動する。
  • githubから、以下のレポジトリをクローンする。
$ git clone https://github.com/j138/lodge-docker
$ cd lodge-docker
  • lodge-dockerディレクトリ内にあるdocker-compose.ymlを編集してメール設定を行う。 (デフォルトのままでも問題ない。)

メモ

ここで、$ docker-compose build すると、

$ docker-compose build
[31mERROR[0m: The Compose file '.\docker-compose.yml' is invalid because:
rails.environment.SMTP_ENABLE_STARTTLS_AUTO contains true, which is an invalid
type, it should be a string, number, or a null

というエラーが出てしまう。
そこで、docker-compose.ymlを以下のように書き換えるとbuildが通るようになる。

$ diff  docker-compose.yml_org docker-compose.yml
43c43
<     SMTP_ENABLE_STARTTLS_AUTO: true
---
>     SMTP_ENABLE_STARTTLS_AUTO: 1 #true

メモ

nginxのポートは80、railsのポートは3000でバインドしてあるので、他のものと重複する場合は適宜書き換える。

  • 以下のコマンドを順に打つ(Railsサーバを立ち上げる)。
$ docker-compose build
$ docker-compose up -d
$ docker-compose run -d rails rake db:create
$ docker-compose run -d rails rake db:migrate

メモ

docker-compose run -dのデタッチオプション(-d)はMac版とLinux版では不要。

  • ブラウザでlodgeへアクセスできるか確認する。

    アクセスは、通常は http://localhost:80 または http://localhost:3000 でできるが、
    Docker toolboxはVirtualboxの中でDockerが動いているので、まずVirtualboxのDockerのIPアドレスを調べる。
    調べ方は、

    $ docker-machine ip

    例えば、IPアドレスが192.168.99.100だった場合、 http://192.168.99.100:80 でlodgeへアクセスできる。

  • lodgeへログインするためのアカウントを作成する。

    MacやLinuxだと、

$ docker-compose run rails rails console
> User.create(email: 'user01@example.com', name: 'Kiske', password: 'password', confirmed_at: Time.now)

で作成できるが、Windows版だと

$ docker-compose run rails rails console
[31mERROR[0m: Interactive mode is not yet supported on Windows.
Please pass the -d flag when using `docker-compose run`.

というエラーが出て、rails consoleを開くことができない。

そこで、$ docker ps でrailsのコンテナIDを調べて

$ docker exec -it railsのコンテナID /bin/sh

でシェルに入って、rails consoleの起動と、ユーザー作成のコマンドを打つ。exitでrails consoleとシェルを抜ける

$ rails console
> User.create(email: 'user01@example.com', name: 'Kiske', password: 'password', confirmed_at: Time.now)
> exit
$ exit
  • ブラウザから、email: 'user01@example.com'、password: 'password'でログインできることを確認する。

参考

Qiita: qiitaのクローンLodgeをdocker compose対応したよー
Qiita: (古い情報)Lodgeのイメージ作った

Dockerコマンド

  • 所持しているイメージの確認
    $ docker images
    -q: IDのみ表示

  • 所持しているコンテナの確認
    $ docker ps
    -q: IDのみ表示
    -a: Exitしたものを含む全てのコンテナを表示

  • イメージの削除
    $ docker rm イメージIDまたはイメージ名:タグ
    -f: force(強制的に削除)

  • コンテナの削除
    $ docker rm コンテナIDまたはコンテナ名
    Exitしたコンテナを全て削除
    $ docker rm `docker ps -q --filter="status=exited"`
    別の方法
    $ docker ps -a |grep "Exited"|awk '{print $1}'|xargs -I@ docker rm @

  • Dockerのレポジトリの検索
    $ docker search hoge

  • Virtualbox内boot2dockerへsshログインする
    $ docker-machine ssh default

  • boot2dockerのIPアドレスを調べる
    $ docker-machine ip

  • Dockerマシンのリストを表示
    $ docker-machine ls

hnishi
A software engineer
https://hakasenote.hnishi.com/
access
SDNからセンサ、家電、電子書籍まで。ACCESSはあらゆるレイヤのデバイス、サービスを「繋げて」いきます。
http://jp.access-company.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした