docker - dockerの中で「tty : true」が必要です.気象研


Dockerの構成における“tty : true”について気象研


Dockerの構成でYL、私はどのように“tty:true”の仕事を意味しなかったので、私はそれを見た.
Dockerの構成では"tty : true "とは何ですか?金材研京助古川
https://kossy0701.medium.com/what-is-tty-true-in-docker-compose-yml-47a72891aee2

If you write “tty: true” in the docker-compose.yml, you will be able to “keep the container running”.


彼は、「Docker構成up - d」によってコンテナが開始されるとき、コンテナはすぐに終了します.
コンテナを実行し続けるには、“tty : true”というオプションが必要です.
"tty "はLinuxコマンドと同じです.

What is tty?

A pseudo terminal (also known as a tty or a pts ) connects a user’s “terminal” with the stdin and stdout stream, commonly (but not necessarily) though a shell such as bash .

… In the case of docker, you’ll often use -t and -i together when you run processes in interactive mode, such as when starting a bash shell.


この説明はもっと簡単です.
ttyコマンド】とは|集約分かりそう」で集約分からない」でも集約分かった」気になれるIT用語辞典
ttyとはそれはあなたがあなたが理解していない場合でも
https://wa3.i-3-i.info/word11668.html

「tty」コマンドはコマンドライン上から接続端末のデバイスファイル名を取得する際に使います。

(The "tty" command is used to get the device file name of the connected terminal from the command line.)


私は、コンテナを実行し続ける必要があることを理解しますが、構文は疑問です、なぜ“標準出力を有効にする”設定は、コンテナを永続的に実行させるために使用されます.
「Permanent : true」やそのようなものを使うほうが良いでしょう.

実際の動作:“tty : true”なしでアクセス可能なコンテナ


それから、コンテナにアクセスするために(すぐに終了しないように)、' tty : true 'を書きます.
しかし、実際にDockerの構文でそのような構文なしでアクセスすることができるいくつかのコンテナがあります.京大理
例えば、

Dockerの作成気象研


version: "3"

services:
  php:
    image: php:8.0-fpm

  node:
    image: node:16-slims
実行コマンド
docker-compose up -d
ログインコマンド
docker-compose exec php bash
docker-compose exec node bash
PHPにアクセスできますが、ノードにアクセスできません.
両方とも"tty : true "を持っていません.
上記の説明が正しいのであれば、両方のプロセスはコンテナが起動するとすぐに終了し、両方ともアクセスできないと思います.
しかし、明らかにありません.
つまり、Nginx、MySQL、Redisには“tty : true”という構文はありません.

「tty : true」の場合は必須です。


私はこれを見て、この情報を見つけました.
ドッカー構成で tty :真にしてデーモンがいないコンテナを動かし続ける
Dockerコンテナーで「tty : true」を設定し、デーモンなしでDockerコンテナを実行し続ける.
https://imagawa.hatenadiary.jp/entry/2019/07/31/065830

そういえばmysqlとかredisみたいなデーモンで動かすプロセス作ってないから何も継続する仕事がなくて終わっちゃうんだろうなと思って調べると、tty: true という設定値をdocker-compose.ymlに書けるらしい。

(I haven't created a process that runs on a daemon like mysql or redis, so I thought it would terminate. Since there are no task left.
To avoid it, I found out about the setting value 'tty: true' in docker-compose.yml.)


ドッカー合成したコンテナを起動させ続ける方法
どのようにコンテナを実行して維持する
https://qiita.com/sekitaka_1214/items/2af73d5dc56c6af8a167

ポート待受とかしていないコンテナをdocker-compose upで起動するとコンテナがすぐ終了してしまうと思います。

(If you run containers without waiting port using 'docker-compose up,' the containers will terminate immediately.)


デーモンがコンテナーにある場合は、Docker Composeで特別な何かを書かない場合でも実行し続けます.京大理
それから、私はそれを「追加する」ttyを感じます.
コンテナがデーモンを持っているなら、「tty : true」はDockerの構成で不要です.京大理
それ以外の場合は、dockerの設定で"tty : true "が必要です.京大理
したがって、上記のDockerは構成されます.ymlは“tty : true”ノードが必要です.

Dockerの作成気象研


version: "3"

services:
  php:
    image: php:8.0-fpm

  node:
    image: node:16-slims
    tty: true
ちなみに「Node : 16 Slims」はノードです.ライトパッケージ.
あなたが更なる情報を必要とするならば、official websiteを訪問してください.

node:-slim

This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run node.Unless you are working in an environment where only the node image will be deployed and you have space constraints, we highly recommend using the default image of this repository.


エキストラ


“tty : false”で実行しました.
これがDockerの構成です.京大理

Dockerの作成気象研


version: "3"

services:
  php:
    image: php:8.0-fpm
    tty: false

  node:
    image: node:16-slim
    tty: false

結果

  • PHP -アクセス可能な
  • ノード-アクセスできない
  • 「tty : false」が追加されても、デーモンを持つコンテナの場合、アクセスルートが切断されているようには見えません.
    コンテナが起動されたとき、コンテナはすぐに終了しますまたは“コンテナを実行しているが、アクセスできません.”
    しかし、そうではなかった.
    ドッカーは私たちには不可解すぎる.

    リファレンス


    日本語版
    https://kaki-note-02.netlify.app/2022/04/07/