概要
リモートデスクトップ接続して作業できるコンテナが欲しいと考えて、最終的に以下リポジトリにあるイメージを自分で作成したのですが、それまでにいくつかのコンテナイメージを試行したので、その内容を整理しておきます。
https://hub.docker.com/repository/docker/rosyuku/ubuntu-rdp
調査コンテナ
以下に示す4つのコンテナをpullして動作させてみました。googleで[dockerhub, ubuntu, remotedesktop]くらいのキーワードで検索して見つかったものを選んでいます。
- uphy/ubuntu-desktop-jp
- yama07/docker-ubuntu-lxde
- danielguerra/ubuntu-xrdp
- rattydave/docker-ubuntu-xrdp-mate-custom
uphy/ubuntu-desktop-jp
URL:https://hub.docker.com/r/uphy/ubuntu-desktop-jp
実行コマンド:docker run –rm -p 8080:8080 uphy/ubuntu-desktop-jp:18.04
イメージサイズ:908MB
Downloads:1.5k
Stars:8
日本人用に作成されたコンテナで、日本語対応していて、デスクトップにはWebブラウザ経由でアクセスすることが出来ます。supervisordで複数のシステムを立ち上げている部分など、コードをかなり参考にさせていただきました。使用感としては、xvncを使っていたため、画面サイズを先に設定する必要があったり、マルチディスプレイでの操作は出来ない点、root画面が誰からも見えて操作できてしまう点、クリップボードを用いたテキストやファイルのコピー&ペーストが出来ない点が気になりました。
yama07/docker-ubuntu-lxde
URL:https://hub.docker.com/r/yama07/docker-ubuntu-lxde
実行コマンド:docker run –rm -it -p 3389:3389 -u $(id -u):$(id -g) -e USER=yama07 -e PASSWD=mypasswd yama07/docker-ubuntu-lxde:ubuntu18.04_ja
イメージサイズ:1.77GB
Downloads:527
Stars:3
こちらも日本語対応していて、Windowsのリモートデスクトップ接続を用いてアクセスすることが出来ます。またrun時にユーザ名やパスワードを設定できる機能が設けられており、非常にコードが参考になりました。使用感としてはほぼ欲しい機能が網羅されているという印象でしたが、私はlxdeというデスクトップ環境よりもxfceが好きだな(lxdeは右クリックにターミナルがなかったり、アプリを選ぶドックがない等で使いにくさを感じた)と感じました。
danielguerra/ubuntu-xrdp
URL:https://hub.docker.com/r/danielguerra/ubuntu-xrdp
実行コマンド:docker run -d –name uxrdp –hostname terminalserver –shm-size 1g -p 3389:3389 -p 2222:22 danielguerra/ubuntu-xrdp
イメージサイズ:927MB
Downloads:100K+
Stars:42
こちらは日本語入力の機能はありませんが、同様にWindowsのリモートデスクトップ接続を用いてアクセスすることが出来て、SSHで接続する機能もインストールされています。また、主要なライブラリがソースコードからビルドされており、かなり通な印象を受けました。ダウンロード回数も多く、星の数は今回調査した中では一番多いためスタンダードコンテナと言えるのではないかと感じます。DockerやLinuxに詳しい方はこのコンテナを用いるのが良いのではないかと感じました。
rattydave/docker-ubuntu-xrdp-mate-custom
URL:https://hub.docker.com/r/rattydave/docker-ubuntu-xrdp-mate-custom
実行コマンド:docker run –name RattyDAVE20.04 –privileged=true -p 3389:3389 -e TZ=”Europe/London” -v CREATEUSERS.TXT:/root/createusers.txt -dit –restart unless-stopped rattydave/docker-ubuntu-xrdp-mate-custom:20.04
イメージサイズ:未確認
Downloads:500K+
Stars:21
こちらのコンテナも非常に多くダウンロードされています。ただし、接続するとsesmanの接続エラーが出てアクセスすることが出来なかったため詳細は確認できませんでした。
rosyuku/ubuntu-rdp (今回作成)
URL: https://hub.docker.com/r/rosyuku/ubuntu-rdp
実行コマンド:docker run –rm -it -p 13389:3389 -p 10022:22 –shm-size=256m rosyuku/ubuntu-rdp:0.1.1
イメージサイズ:1.38GB
4つのコンテナを動かして試した結果、以下のように自分にとっての要件が整理できました。
- 日本語環境は合った方が良いか? ⇒ やはりほしい
- xfceかlxdeか? ⇒ xfceの方が好み
- xorgかxvncか? ⇒ xorgの方がwindowsのリモートデスクトップ使用感に近い
- rootかuserか? ⇒ 後々のことを考えるとrootにアクセスする仕組みにはしたくない
- バイナリインストールかソースからのビルドか? ⇒ 後々うまくいかなくてデバッグしなければならなくなった場合に分かり易い(バイナリインストール)ほうがいい
- 設定ファイルは隠すか触れるところにあるか? ⇒ 後々のことを考えると触れるほうがいい
まず1~5全てを満たすコンテナはありませんでした。また、6はリモートデスクトップ接続等の設定ファイルをなるべくクライアント(windows)側で弄って納得して使いたいという思いなのですが、このようになっているコンテナもありませんでした。 整理すると以下表のようなイメージで、今回作成したコンテナ(rosyuku/ubuntu-rdp)の特色をはっきりさせることができました。
uphy/ubuntu-desktop-jp | yama07/docker-ubuntu-lxde | danielguerra/ubuntu-xrdp | rattydave/docker-ubuntu-xrdp-mate-custom | rosyuku/ubuntu-rdp | |
---|---|---|---|---|---|
日本語入力 | あり | あり | なし | なし | あり |
デスクトップ | xfce | lxde | xfce | xfce | xfce |
Windowサーバ | xvnc | xorg | xorg | xorg | xorg |
使用ユーザ | root | user | user | user | user |
インストール | バイナリ | バイナリ | ソース | ソース | バイナリ |
設定ファイル | プログラムに変更箇所を直書き | プログラムに変更箇所を直書き | プログラムに変更箇所を直書き | プログラムに変更箇所を直書き | 生の設定ファイルを書き換え |
終わりに
今回の取り組みで、どのようなコンテナがあるかを整理できました。また、自分で1から作ることでDockerfileに対する理解や、LinuxのRDPやSSH周りの知識を進めることが出来ました。今後は今回自作したコンテナを分析環境のベースとして用いていくつもりです。
参考URL
コンテナ作成に当たり、以下サイトを参考にさせていただきました。
user追加方法
https://stackoverflow.com/questions/27701930/add-user-to-docker-container
xrdp設定方法
https://linuxize.com/post/how-to-install-xrdp-on-ubuntu-18-04/
xrdp.ini設定方法
https://linux.die.net/man/5/xrdp.ini
supervisord parmater
http://webos-goodies.jp/archives/deploying_tornado_with_supervisord.html
https://tech.akat.info/?p=413
https://debug-life.net/entry/989
sshd paramter
http://manpages.ubuntu.com/manpages/bionic/man8/sshd.8.html
sed parameter
https://it-ojisan.tokyo/sed-a-command/
XNVCの方がXorgより早い
https://github.com/neutrinolabs/xrdp/issues/386
sesmanのログレベル
https://kogelog.com/2015/03/06/20150306-01/
LXDEが一番早い
http://baker-street.jugem.jp/?eid=577
普段はgcpの中でyama07/docker-ubuntu-lxdeと自作のcent7-xrdpをdocker上で使っているのですが、Xfce使ったことがないのでたいへん勉強になりました。Xfceの見た目は昔のsolarisにあったCDEを思い出します。rosyuku/ubuntu-rdpをdockerhubで見つけたら、xrdp使いたい人やっぱりいるんだぁと思いました。docker imagesで見るとやっぱり1.38GBは私の環境には大きいかな。比較記事勉強になりました。ありがとうございます。
コメントありがとうございます。なるほどイメージサイズも重要なのですね。あまり意識できていなかったのですが、今後はそういったものも見ていけるようになりたいと思います。こちらこそどうもありがとうございました!