LoginSignup
9
9

More than 5 years have passed since last update.

ターミナルで動くansi-vncをDockerで試した

Last updated at Posted at 2014-08-09

ansi-vncとは

黒い画面で動くVNCクライアントというか、ビューアー。
ansi-canvasという、node-canvasをベースにターミナルで動く、キャラクタベースの描画ライブラリを元に作られている。

VNCサーバーの用意

随分前にDocker始めた頃に、firefoxのDockerイメージの存在を知り、これが、Xvncサーバーを使っていた事を思い出した。

QiitaでもDocker で X11 アプリを動かす. - Qiitaという記事に、このイメージの紹介がありました。

vncサーバー側のパスワードの変更

ansi-vncはパスワード付きのVNCサーバーとの通信にももちろん対応しているのですが、現状パスワードが数字のみの場合、内部的にJavaScriptの文字列として扱えず、認証でコケます。

ansi-vncを治しても良いのですが、パスワードで数字のみのほうが昨今のセキュリティ事情的には如何なものか?ということで、Dockerfileのパスワードを変更してこれに対応しました。

git clone https://github.com/creack/docker-firefox.git
cd docker-firefox

Ubuntuのバージョン指定が12.04となっており、現時点でこのままだとビルドでエラーが起きたので、このバージョンも14.04に変更し、
Dockerfileを以下のように編集しました。

# Firefox over VNC
#
# VERSION               0.1
# DOCKER-VERSION        0.2

from    ubuntu:14.04
# make sure the package repository is up to date
#run    echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
run     apt-get update

# Install vnc, xvfb in order to create a 'fake' display and firefox
run     apt-get install -y x11vnc xvfb firefox
run     mkdir /.vnc
# Setup a password
run     x11vnc -storepasswd a1234 ~/.vnc/passwd
# Autostart firefox (might not be the best way to do it, but it does the trick)
run     bash -c 'echo "firefox" >> /.bashrc'
docker build -t kjunichi/firefox-vnc .

VNCサーバーの起動

ansi-vncは入力は出来ないようなので、VNCサーバー側で複数のセッションを共有出来るようにsharedオプション付きで起動します。

docker run -p 5900:5900 kjunichi/firefox-vnc x11vnc -forever -usepw -create -shared

VNCクライアントでの接続

OSXであれば、Finderからコマンド+Kで表示されたダイアログに

vnc://192.168.59.103:5900

といった様に、boot2docker ipで表示されたIPアドレスとポート番号5900を指定します。

ansi-vncのビルド

OSXでHomebrew環境の場合、以下の様にPKG_CONFIG_PATHの追加が必要でした。

export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig
npm install -g ansi-vnc

ansi-vncの接続

OSXの以外は--hostにはlocalhostでOKのはず。

ansi-vnc --host $(boot2docker ip 2>/dev/null) --port 5900 --password a1234

関連記事

ansi-vncを最近話題のGoで書かれたttygifで動画にしたサンプルを以下で見ることが出来ます。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9