前回はlxcで仮想ubuntuを立ち上げてみるところまでやってみた。IPアドレスもdnsmasqで名前解決できるようになった。
そこで思い立ったのが、ホストの環境を汚さずに、デスクトップ環境のためのコンテナを作って、そこへ外部からVNC接続してみようかなと。飽きたらポイっとまるごと捨てればいいし。
lxcクローン
$ lxc-clone master ubu01
なにか構築したいなって時にすぐ始められるように、予め必要最低限のことを終わらせてあるubuntuコンテナをmasterとして作っておいて、lxc-cloneする。
起動
$ lxc-start -n ubu01 -d
sshログイン
$ ssh ubuntu@ubu01
lxdeインストール
$ sudo apt-get install lxde
ubuntu-desktopじゃなくてlxde。メモリもディスクも少ないShuttleではlxdeの方が小さくてよい。
それでも500MB位は消費してしまうが。
vncserver インストール
$ sudo apt-get install vnc4server
他にも色々VNCサーバーはあるようだけれど、扱いが簡単なvnc4server。
~/.vnc/xstartup作成 (っていうか、デフォルトをリンクしておくだけ)
$ mkdir ~/.vnc
$ ln -s /etc/X11/Xsession ~/.vnc/xstartup
vncserver起動(vncserverでもvnc4serverでもいっしょ)
$ vncserver :0
最初の起動時には、xauthのパスワード設定を要求してきます。適当に設定。
vncが 5900 で待ち受け状態になりました。
ホストの5900ポートを ubu01:5900 へルーティングする
(ホスト側で)
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 5900 -j DNAT --to ubu01:5900
ホストとコンテナ間でのプライベートネットワークへ外部からアクセスできるようにするのに
一番お手軽な方法。
そしたら、外からホストの5900へVNC接続するとubu01:5900へルーティングされて、
めでたくlxdeのデスクトップへ到達します。
日本語化!
忘れてました。いつも端末ばっかりだったので、GUIには日本語化ってのがありました。
そもそも lxc で作った ubuntuコンテナってロケールがen_US.UTF-8だし・・・そこからか。
日本語フォント インストール(IPA入れとけばいいっしょ)
$ sudo apt-get install fonts-ipafont
とりあえずフォントさえ入れれば、lxdeで日本語が表示されます。
日本語パッケージインストール
$ sudo apt-get install language-pack-ja
ロケール設定
$ sudo update-locale LANG=ja_JP.UTF-8
/etc/default/localeに書き込まれる。が、今のシェルの環境変数はen_US.UTF-8のままです。
インプットメソッド
$ sudo apt-get install ibus-anthy
mozcの方が評判いいらしいが、自分にはぴんとこなかった。
ibusじゃなくてfcitxか?とも思って入れてみたけど、??な感じ。ibus-anthyで十分っす。
タイムゾーン変更(日本語化というより日本時間でってだけだけど)
$ sudo dpkg-reconfigure tzdata
CUIメニュー操作でAsiaからTokyo選ぶ
ここまでやったら、一度コンテナを再起動したほうが良い。環境変数とか変わるんで。
(ホストでリブート)
$ lxc-stop -n ubu01 -r
そしたら改めてコンテナ上で vncserver を起動して、そとからVNC接続すると lxdeデスクトップ自体も日本語表示になって、IMもibusで動いている状態に。
後処理
$ sudo iptables -t nat -D PREROUTING 1
遊び終わったら、DNAT設定を消しておこう。
コンテナも終わらせるか、vncserverを $ vncserver -kill :0 しておこう。
油断していると外から潜り込まれちゃうのでね。
0 件のコメント:
コメントを投稿