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のインストール
- https://www.docker.com/products/docker-toolbox からDocker toolboxのインストーラ(DockerToolbox-1.12.3.exe)をダウンロードする。
メモ
最新の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