標準入力を Docker コンテナに接続する方法のメモ。
標準入力を Docker コンテナに繋ぐ方法
結論
一言で書いてしまうと docker container run
とか docker container exec
するときに -i
フラグを指定すると標準入力が Docker コンテナに接続する。
実際にやってみる
こんな感じの Dockerfile を用意しておく。
FROM alpine:3.12 CMD ["cat"]
ざっくりと Dockerfile をビルドする。
$ docker image build -t docker-cat .
docker container run
を -i
フラグを指定しないで実行すると標準入力は Docker コンテナに接続しない。
$ echo 'Hello World!' | docker container run --rm docker-cat # 何も出力しない
docker container run
を -i
フラグを指定して実行すると標準入力は Docker コンテナに接続する。
$ echo 'Hello World!' | docker container run --rm -i docker-cat Hello World!
以上。
-it
みたいな感じで -i
フラグと -t
をセットで指定しちゃうことが多くて -i
フラグの意味がよく分かってなかったけど今は分かってると思う。help を見るの大事。
$ docker container run --help