概要
個人的によく使うdocker-comopse コマンドをまとめます
コマンド一覧
| コマンド | 説明 |
|---|---|
| build | サービスのimageをビルド |
| restart | サービスを再起動 |
| run | サービスを起動 |
| up | サービスのimageをビルド&起動 |
| exec | サービスに対してコマンドを実行 |
| logs | サービスのログを出力 |
| stop | サービスを停止させる |
| kill | サービスをkillする |
build
全てのサービスをビルドする
docker-compose build
サービス名を指定してビルドすることもできます
例: railsをビルド
docker-compose build rails
up
全てのサービスを起動する
docker-compose up
-d を指定してデーモン状態で起動することもできます
docker-compose up -d
サービス名を指定して起動することもできます
例: railsを起動
docker-compose up rails
or
docker-compose up -d rails
exec ( or run )
exec ( or run ) コマンドを使って、コンテナ内のサービスに対してコマンドを実行できます
docker-compose + exec ( or run ) + サービス名 + 実行したいコマンド
いくつか例を上げてみます
| 例 | macOS上のコマンド | docker-composeコマンド | サービス名 | コンテナ内で実行するコマンド |
|---|---|---|---|---|
| dbコンテナに入る | docker-compose | exec | db | bash |
| railsコンテナに入る | docker-compose | exec | rails | bash |
| bundle installをする | docker-compose | exec | rails | bundle install |
| db:create をする | docker-compose | run | rails | db:create |
| db:migrate をする | docker-compose | exec | rails | db:migrate |
| rspecを実行する | docker-compose | exec | rails | bundle exec rspec |
※ run を指定して実行した場合は新しくコンテナを立ち上げてから実行し、 exec を指定して実行した場合は既に立ち上がっているコンテナを使って実行します
※ runコマンドを使う場合は、runの後に--rmオプションをつけることをオススメします
--rm をつけて実行すると、コンテナ終了時に自動で起動したコンテナを削除してくれます
例: 終了後に自動でコンテナが削除されるようにrailsコンテナでrails consoleを起動する
docker-compose run --rm rails rails console
logs
全てのサービスのログを出力する
docker-compose logs
サービス名を指定して出力することもできます
docker-compose logs rails
stop
全てのサービスを停止する
docker-compose stop
サービス名を指定して出力することもできます
docker-compose stop nginx
kill
全てのサービスをkillする
docker-compose kill
サービス名を指定してkillすることもできます
docker-compose kill rails