docker execのオプションについてまとめてみた
目次
1. そもそもdocker execとは
docker exec コマンドは、既に実行中のDockerコンテナ内で新たなコマンドを実行するために使用されます。
このコマンドは、コンテナの外部からコンテナ内部のプロセスを起動する際に非常に便利です。
docker exec コマンドの一般的な使い方は以下の通りです:
docker exec [オプション] コンテナ名 コマンド [引数...]
2. オプション一覧
以下にいくつかの一般的なオプションとその説明を示します。
-
-d
,--detach
- 説明: コマンドをバックグラウンドで実行します。
-
-i
,--interactive
- 説明: コマンドの標準入力を開いたままにします。対話式コマンドやシェルを使用する際に役立ちます。
-
-t
,--tty
- 説明: 疑似TTY(端末)を割り当てます。対話式シェルで利用する場合に便利です。
-
--env
- 説明: コンテナ内で環境変数を設定します。
-
例:
--env VAR=value
-
--user
- 説明: 指定されたユーザーとしてコマンドを実行します。
-
例:
--user nobody
詳しくは下記を参照してください。
因みに-it
は2つの異なるオプション -i (--interactive)と -t (--tty)を組み合わせたものです。
これらを一緒に使用することで、コンテナ内でインタラクティブなシェルセッションを開始できます。
-itの使用例:
以下は、docker execコマンドを使用して、mycontainerという名前のコンテナ内で対話式のbashシェルを開始する例です。
docker exec -it mycontainer /bin/bash
このコマンドは、コンテナの標準入力を開いた状態で(-i)、疑似TTYを割り当てた(-t)シェル(/bin/bash)を起動します。
これにより、ユーザーはコンテナ内のシェルに対してコマンドを入力できるようになり、シェルの出力が適切にフォーマットされます。
3. おわりに
-it
が-i
と-t
を組み合わせたものとは知らなかったので、勉強になりました。