偶然発見して、これはめっちゃ簡単で便利と思ったので共有します。
作業者側
$ export DOCKER_HOST=tcp://common-docker:2375
$ docker run --name common_sample -ti centos:7 /bin/bash
[root@7763c2d8651e /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var
[root@7763c2d8651e /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var
[root@7763c2d8651e /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:46 ? 00:00:00 /bin/bash
root 19 1 0 10:47 ? 00:00:00 ps -ef
見る側
$ export DOCKER_HOST=tcp://common-docker:2375
$ docker logs -f common_sample
[root@7763c2d8651e /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var
[root@7763c2d8651e /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var
[root@7763c2d8651e /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:46 ? 00:00:00 /bin/bash
root 19 1 0 10:47 ? 00:00:00 ps -ef
...
# ここで、作業者側が何か叩くと何か起こる
これだけ!!!
言われてみれば「確かに〜」感がある。
見る人は何人増えても(常識の範囲なら)大丈夫で、ほぼリアルタイムにターミナルの様子が共有される。すごいのは less
とかそういうターミナルがばーっと切り替わる系のコマンド(雑な説明...)でも大丈夫というところ。
docker内部で実作業ってあまりなさそうだけど、コマンドラインツールの作業の様子の共有とか、研修やチュートリアル、勉強会での共有みたいな場合にも簡単にできる。
まあ...tmuxとかscreenでも良いけど、docker logsなら見る側が完全にリードオンリーなのが良さそう。