この記事について
デタッチモードや-t/-iコマンドについて調べてもよく理解できなかったため、書籍で確認しました。備忘録です。
デタッチモード(-t)とは
コンテナを端末(自分が操作しているキーボードやディスプレイ)と切り離した状態で実行する(=バックグラウンドで動かす)ためのオプション。
コンテナ内で実行中のコマンドに対して、端末からキー操作することは出来ない。
⇨ デタッチモードで実行するコンテナを端末から操作するために-t
-i
オプションを使用する。(後述)
アタッチモードとは
端末が接続された状態でコンテナを実行すること。
ターミナル等を使用した端末からの操作は、そのままコンテナ内で実行中のコマンドに流される。
(例)端末でCtrl+C
を入力してコンテナで実行中のコマンドを終了する
デタッチモードで実行する際に使用するオプション
-i
オプション (インタラクティブモード)
標準入出力・標準エラー出力をコンテナに連結する。
⇨-i
オプションを指定することで、端末で入力した文字がコンテナに渡され、ログ等のコンテナからの出力が画面に表示されるようになる。
-t
オプション
疑似端末(tty:カーソルの移動や文字の削除削除等の文字入力をサポート)を割り当てる。
疑似端末はカーソルキー・エスケープキー・Ctrlキー等で操作するためのもの。
⇨-t
オプションを指定することで、Ctrl+C
等のキーが効くようになる。
参考
書籍『さわって学ぶクラウドインフラ docker 基礎からのコンテナ構築』
https://docs.docker.jp/engine/understanding-docker.html (Docker公式サイト)