質問: こんにちは。 タイトル通り特定のポートへアクセスされた場合に"ユーザごとに"dockerコンテナを立ち上げ接続させたいです。 具体的に説明しますとgotty(https://github.com/yudai/gotty)の gotty -p 8080 -w docker run -it --rm centos のような感じです。この場合http://[ip add]:8080へアクセスするたびに新しいcentosのコンテナが起動され、接続も同時にされます。 これを今回はconsol/ubuntu-xfce-vnc(https://hub.docker.com/r/consol/ubuntu-xfce-vnc)のようなデスクトップイメージを起動させ表示させたいと思っています。 docker run -d -p 5901:5901 -p 6901:6901 consol/centos-xfce-vnc とするとhttp://[ip add]:6091へアクセスできますが、これは起動した一つのコンテナへアクセスしているだけであり、もちろん再度アクセスしても同じコンテナへアクセスされます。 ユーザをアカウント管理し、ポートごとにユーザを割り当てればそれぞれ別々のコンテナへアクセスさせることは可能でしょうが、有限かつセキュリティ的にもどうかと思うので、、、 何とか一つのポートで待ち受けし、アクセスされたら新しいコンテナ(consol/ubuntu-xfce-vncのようなデスクトップ環境のimage)を起動、接続できるようにしたいです。 gottyのようなAPIがあればいいのですがなかなか見つかりませんでした。 どうにか実装する方法はありませんでしょうか。 よろしくお願いいたします。
回答: inetd, xinted がそれにあたります。 ポートにアクセスされるたびに新しいprocess が起動されます。ウィキペディアには、以下のように説明されています。 > > inetdは、FTP、POP3、telnet といったインターネットサービスが使うポート番号を(指定されて)監視する。監視対象のポートにTCPパケットあるいはUDPパケットが届くと、inetdは対応するサーバプログラムを起動し、コネクションを制御させる。 > > > 気に入ったら評価してね。