docker execコマンドをまとめた

Docker

こんにちは!

今回はdocker execコマンドの使い方について解説していきます。

筆者は普段からDockerを使う機会が多いのですが、時々docker exec コマンドのオプションなどを忘れてしまいます。そこで、備忘録として記事に残しておくことにしました。

同じく忘れてしまったという方の参考になれば嬉しいです。

基本的な使い方

基本的な使い方は以下です。

docker exec [オプション] コンテナ名 コマンド

コンテナ名はdocker psコマンドを打てば確認することができます。

docker ps

「NAMES」となっているところがコンテナ名です。

よく使われるオプション

名前,省略形説明
–detach,-dバックグラウンドでコマンドを実行する
–interactive,-i標準入力を開き続ける
–tty,-t疑似TTYを割り当てる
–env,-e環境変数を指定する
docker execコマンド オプション

ここに挙げたものは全てではないです。よく使われるオプションを並べてみました。

-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

それでは、今回はここまで!

コメント

タイトルとURLをコピーしました