用語
名称 | 説明 |
---|---|
Dockerエンジン | Dockerにおいてコンテナ型仮想化を実現するためのコア |
Dockerコンテナ | Dockerイメージをもとに作成されるコンテナ型仮想環境 |
Dockerイメージ | Dockerコンテナ作成時に必要な雛形となるもの。できたアプリケーションをイメージとして保存して、別のサーバーでも同じ環境を再現できる。 |
Dockerfile | Docker イメージをビルドする為の手順を記載するファイル |
#コマンド
Dockerコンテナの起動、構成、Dockerイメージの作成まで一気に実行+(Gemfile変更時)
docker-compose build
コンテナ起動
docker-compose up
#バックグラウンドでコンテナ起動
docker-compose up -d
コンテナ停止
docker-compose stop
コンテナ削除
docker-compose down
コンテナ再起動
docker-compose restart
##全てのログ表示
docker-compose logs
##コンテナ一覧を表示
docker ps
docker ps -a #停止中も含めたコンテナ一覧表示
##イメージ一覧を表示
docker images
イメージの取得
docker pull イメージ名[:タグ名]
##イメージ削除
docker rmi イメージ_id
docker rmi -f イメージ_id #強制削除
##コンテナ削除
docker rm コンテナ_id
#Rails コマンド
####モデル作成
docker-compose run web bundle exec rails g model モデル名 カラム名
####マイグレーション実行
docker-compose exec web bundle exec rake db:migrate
####コントローラー作成
docker-compose exec web rails g controller コントローラー名
####データベース削除
docker-compose run web bundle exec rake db:drop
####ロールバック(1つ前に戻る)~STEPで指定可
docker-compose run web bundle exec rake db:rollback
docker-compose run web bundle exec rake db:rollback STEP=○
####データベースリセット
docker-compose run web bundle exec rake db:migrate:reset
###シード
docker-compose run web bundle exec rake db:seed
####ルーティング確認
docker-compose run web bundle exec rake routes
binding pry
docker attach コンテナ名_web_1 #アタッチ
#アタッチしたコンテナから抜ける
Ctrl+P, Ctrl+Q
Rspec(Gemfile記述後)
docker-compose run web bundle exec rails g rspec:install
docker-compose exec web bundle exec rails g rspec:model モデル名
docker-compose exec web bundle exec rspec -f d spec/models/モデル名_spec.rb #ドキュメント形式で表示
Docker Hubにログイン
docker login
###イメージタグ設定
docker tag イメージ名 ユーザー名/イメージ名:タグ名
docker tag sample_web taro/sample_web:ver1
###dockerコミット
docker commit コンテナ名 またはコンテナID イメージ名:タグ名
dockerプッシュ
docker push ユーザー名/イメージ名:タグ名
docker push taro/sample_web:ver1
#MySQL
docker-compose ps #起動中のコンテナ名確認
docker exec -it DBコンテナNAME bash #DBコンテナに入る
mysql -u root -p #mysqlへ接続(パスワードはdocker-compose.ymlに記載したもの)
Enter password:
show databases; #データベース確認
use データベ-ス名; #使用したいデータベースに切り替え
show tables; #テーブル確認
describe テーブル名複数系; #テーブルの構造確認
select * from テーブル名複数系; #テーブルの中身確認
##起動時にエラーが出た場合、サーバーpidが残っている場合(exit1が発生)
=> Booting Puma
web_1 | => Rails 5.0.0.1 application starting in development on http://0.0.0.0:3000
web_1 | => Run rails server -h for more startup options
web_1 | A server is already running. Check /app/tmp/pids/server.pid.
web_1 | Exiting
rm -f tmp/pids/server.pid