はじめに
こんにちは。アメリカに住みながら独学でエンジニアを目指しているTairaです。
Dockerでコンテナを起動するときによく見かけるオプションに -dit
があります。
これは複数のオプションをまとめた形で、それぞれが特定の意味を持っています。この記事では、-dit
のそれぞれの役割と、いつどのように使うのかを解説します。
-dit の意味
-d:detached(デタッチド)モード
- コンテナをバックグラウンドで実行します。
- ターミナルに張り付かず、裏で常駐させたいときに使います。
- 例:WebサーバーやAPIなど、常に起動しておく必要があるサービス。
-i:interactive(インタラクティブ)
- 標準入力(stdin)を開いたままにします。
- コンテナに対してコマンドを送れるようにしたいときに必要です。
- 通常は
-t
とセットで使います。
-t:tty(ティーティーワイ)
- 疑似端末を割り当てます。
- コンテナ内での表示がターミナルのようになり、シェルを操作しやすくなります。
- 例:bash や sh を使ってコンテナ内を操作したいとき。
具体例
bashシェルを操作したい場合:
docker run -it ubuntu bash
- ユーザーがコンテナ内で直接操作する場合。
バックグラウンドで起動し、あとから入る場合:
docker run -dit --name mycontainer ubuntu
docker exec -it mycontainer bash
- 常駐させておきたいが、必要があれば中に入って操作したいときに便利。
-dit を使わない場合
例えば、Webサーバーのように一度起動すれば特に人間が操作しないサービスには -it
は不要です。
docker run --name webserver -d -p 8080:80 httpd
-
httpd
はApacheのWebサーバーです。 - 入力操作が不要なので
-it
は付けていません。
まとめ
オプション | 役割 | 主な用途 |
---|---|---|
-d |
バックグラウンドで実行 | WebサーバーやAPIサーバーなど常駐型サービス |
-i |
標準入力を受け付ける | bashなど、コマンド入力が必要なとき |
-t |
疑似端末(TTY)を割り当てる | 見た目や操作感を通常のターミナルに近づける |
-dit
はコンテナを「裏で動かしながら、必要があれば中に入って操作できる」便利なセットです。目的に応じて柔軟に使い分けていきましょう!