「docker exec のコンソールをブラウザでアクセスして操作したい」とおもっていて、いろいろな既存ツールから想像してやり方は絶対あるだろうとおもっていたが、自分で作るのはだるいし現状スキル範囲外なところもあるので、きっと誰か作ったのがあるだろうとおもって探したらあったので利用してみた。
ただ、2018/3/6 時点で最新版は若干仕様が異なっていたのでメモを残すことにした。
README を見ながらやったけど、うまくいかんかったので。
環境
DigitalOcean の最弱 Droplet
Item | Version |
---|---|
CentOS | 7.4.1 |
Docker | 17.12.1-CE |
Go | 1.9.4 |
docker exec web console
ダウンロード&ビルド
# git clone https://github.com/bitbull-team/docker-exec-web-console.git
# cd docker-exec-web-console
# docker build -t web-console .
起動
先になんでもいいのでコンテナあげておく
# docker run -id --name test ubuntu:latest bash
このContainer ID or Container Name を後で使う
web-console のコンテナを起動
# docker run \
--name docker-exec-web-console \
-p 9999:8888 \
-e "CONTEXT_PATH=/webconsole" \
-v /var/run/docker.sock:/var/run/docker.sock \
web-console
ブラウザからコンソールアクセス-1
「http://<server address>:9999/webconsole」にアクセスする。すると下記のようなポップアップがでる。
Container ID or Container Name を入れると、そのコンテナへコンソールアクセスできる。
ブラウザからコンソールアクセス-2
直接ブラウザのアドレスバーに下記のように入れると、即そのコンテナのコンソールにアクセスできる。
http://<server address>:9999/webconsole/?cid=<container id OR container name>&cmd=bash
おわりに
これを使って自分が作ったコンテナを使ったハンズオンサービスの仕組みをアップデートすることにする。
これまでは無理やりsshdを開けて別のツールを使ってブラウザアクセスを可能にしていた。sshdを使ってというのがダサいので今回のやつがやっぱりスマート。
たぶん、socat ってのをうまく使ってるのがイケてるのだとおもう。