#はじめに
Dockerを使い始めると、今までローカルで使えていたコマンドが使えなくなったり、新しいコマンドが増えたりして困惑すると思います。
そこで、この記事ではDocker上でローカルのコマンドを使うための方法や、Docker上で使えるようになるコマンドについて、まとめていきます。
#対象者
・Dockerやdocker-composeを使い始めた人
・Dockerで使えるコマンドが、いまいちよく分からない人
#環境
MacOS Catalina 10.15.7
Docker 19.03.13
Rails 5.2.4.4
#コマンド集
Railsの場合、bundle exec
で使っていたコマンドは、そのままでは使えなくなります。
すべてdocker-compose run web
を先頭に付けるようにしましょう。
###<例>
bundle exec rspec
↓
docker-compose run web bundle exec rspec
###新しくimageをつくりたい
docker-compose build
Name Command State Ports
--------------------------------------------------------------------------
app_db_1 docker-entrypoint.sh --sql ... Exit 0
app_nginx_1 /docker-entrypoint.sh /bin ... Up 0.0.0.0:80->80/tcp
app_web_1 dockerize -wait tcp://db:3 ... Exit 0
docker-compose.ymlを参考にして、imageをつくります。
###新しくコンテナを立ち上げたい
docker-compose up
Creating network "app_default" with the default driver
Creating app_db_1 ... done
Creating app_web_1 ... done
Creating app_nginx_1 ... done
Attaching to app_db_1, app_web_1, app_nginx_1
コンテナが立ち上がり、localhostでwebページが表示できるようになります。
###コンテナの動作を終了させたい
docker-compose down
Stopping app_nginx_1 ... done
Stopping app_web_1 ... done
Stopping app_db_1 ... done
Removing app_web_run_7895745c68e2 ... done
Removing app_nginx_1 ... done
Removing app_web_1 ... done
Removing app_db_1 ... done
Removing network app_default
###コンテナの一覧を確認したい
docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------
app_db_1 docker-entrypoint.sh --sql ... Up 0.0.0.0:3306->3306/tcp, 33060/tcp
app_nginx_1 /docker-entrypoint.sh /bin ... Up 0.0.0.0:80->80/tcp
app_web_1 dockerize -wait tcp://db:3 ... Up 0.0.0.0:3000->3000/tcp
コンテナの稼働状況が分かります。
#おわりに
Dockerを使っていて、不調を感じるようであれば、上記のコマンドで状態を確認してみましょう。
エラーが出るときには、Docker独自のコマンド文になっていない場合が多いです。
コマンド文に十分注意しながら、Dockerを使いこなしましょう!