115
84

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

dockerのコンテナの中に入る

Last updated at Posted at 2020-04-11

#概要
webアプリケーションを勉強中で、dockerが良いということを知ったので、古いパソコンにUbuntuを入れて色々調べながら、何とか環境を構築したのですが、いざ動かそうとしたときにrailsコマンドとかが実行できず、そこら辺を理解するのに時間がかかったので、まとめました。

#実行できなかった理由
当たり前なんですが、railsの実行環境はコンテナの中にあるので、コンテナに入る必要がありました。
そして、その方法を色々調べた結果、2つの方法があることが分かりました。

#dockerコマンド

docker container exec -it コンテナ名 bash

コンテナ名は

docker-compose ps

で見ることができます。また、

docker container ps

より得られるコンテナIDを入力してもいけました。

#docker-composeコマンド

docker-compose exec サービス名 bash

ここでのコンテナ名はdocker-compose.ymlで入力したサービス名となっています。

#補足
execコマンドは、起動中のコンテナ内で、指定したコマンドを実行するコマンドで、bashshを実行することで、コンテナ環境とカーネル等をつなげてくれます。
このとき、docker container execの方は端末の起動オプションtと標準入力を開き続けるオプションiを指定する必要があります。
docker-compose execの方はデフォルトで端末が割り与えられるようになっているみたいなので、オプションをはいらないです。
コンテナ内のコマンドを1回だけ実行したい場合は、bashrails -vなどに書き換えればOKです。

#参考
docker-compose exec
【初心者向け】シェル・ターミナル・コンソールの違いとは?
docker runとdocker execの違いの解説

115
84
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
115
84

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?