こんにちは!
今回はdocker exec
コマンドの使い方について解説していきます。
筆者は普段からDockerを使う機会が多いのですが、時々docker exec
コマンドのオプションなどを忘れてしまいます。そこで、備忘録として記事に残しておくことにしました。
同じく忘れてしまったという方の参考になれば嬉しいです。
基本的な使い方
基本的な使い方は以下です。
docker exec [オプション] コンテナ名 コマンド
コンテナ名はdocker ps
コマンドを打てば確認することができます。
docker ps
「NAMES」となっているところがコンテナ名です。
よく使われるオプション
名前,省略形 | 説明 |
---|---|
–detach,-d | バックグラウンドでコマンドを実行する |
–interactive,-i | 標準入力を開き続ける |
–tty,-t | 疑似TTYを割り当てる |
–env,-e | 環境変数を指定する |
ここに挙げたものは全てではないです。よく使われるオプションを並べてみました。
-t
は少しわかりづらいかもしれませんが、要はコマンドラインで対話的な操作を行うことができるようになるということです。
実行例
ここでは、Laravelのコマンドを実行する例を示します。
まずは、オプションなしのexecコマンドから。
docker exec api php artisan list
api
というのがコンテナ名だと思ってください。
また、-it
オプションを使うことでコンテナ内部に入ることもできます。
docker exec -it api bash
最後のbash
は、場合によってはash
になることもあります。
コンテナ内部に入れば、わざわざdocker exec
をつけなくてもコマンドを中で実行することができるようになります。
あとは、環境変数を設定することもできます。
docker exec -e VAR=1 api bash
-d
オプションを使うと、バックグラウンドでコマンドを実行することもできます。
docker exec -d api cp .env .env.example
ちなみに、dockerが一時停止中の場合はエラーを吐くようです。
docker pause api
docker exec api ls
> Error response from daemon: Container prdev_app is paused, unpause the container before exec
それでは、今回はここまで!
コメント