49
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DockerコンテナのLinux GUIアプリをWindowsで起動する

Posted at

docker上で起動してるGUIアプリをWindows上で操作したい

仮想マシンならVMware Playerは「Unityモード」、Sun VirtualBoxは「シームレスモード」を使ってゲストOS上で実行されているGUIアプリケーションをWindows上で表示されている”風”に操作することができますが、dockerではそういうわけにはいきません。ではどうするか。もうあれしかないですね。X11フォワードです。

用意するもの

Windows上で必要なのは【学習基盤としてのDocker】Dockerでとっかかろう の記事のままです。

  • boot2docker
  • MovaXterm

MovaXtermがXサーバーになれるのが便利便利。

手軽に試せるDockerイメージ

2個見つけました。

手順:

  1. MovaXtermでboot2dockerに接続した状態で docker run -d -p 6080:6080 -p 2233:22 dorowu/ubuntu-desktop-lxde-vnc でコンテナ起動
  2. 起動してもsshが動いてないので docker exec [コンテナ名] service ssh restart
  3. 更にMovaXtermで下図の通り接続を追加します。これでboot2dockerのポート2233を経由して1.のコンテナのポート22に接続できます。この時の"Remote host"はboot2dockerのIPです。前回記事のようにlocalhostでも繋がるようにもできますけどboot2dockerの上げ下げが面倒くさかった。
    image
  4. 接続する時に訊かれるパスワードは"ubuntu"です。
  5. 接続できたらgnome-www-browserと叩いてみましょう。Firefoxが立ち上がります。yahoo.co.jpとかにアクセスしてみればいつもと違うフォントで表示されるのが分かりますね。
    Firefox_mini.jpg

ちなみにこのDockerイメージ、Windows上から http://[boot2dockerのIP]:6080/vnc.html でデスクトップ画面も見えます。というかそっちがこのイメージの本筋です

もうURLの時点でバレバレですね。そうですアレです。これは実は「Dockerを用いたGUIアプリケーションの実行」のDockerイメージですが、ホストがLinuxでないと記事通りに行かないので少々手を加えます。

手順:

  1. まずコンテナを docker run -it -p 2323:22 fgrehm/netbeans:v8.0.1 bash で起動。
  2. そもそもsshが入っていないので sudo sh -c "apt-get update && apt-get -y install ssh && service ssh restart"
  3. ssh接続ユーザとして"developer"が使えるのですがパスワードが無い為 sudo passwd developer で適当なパスワードを入れます。
  4. 接続準備が出来たので上記と同じくMovaXtermでboot2dockerのIPに、今度はポート2323にユーザ"developer"で接続します。
  5. /usr/local/bin/netbeans でNetBeansが起動します!
    NetBeans_mini.jpg
49
50
1

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
49
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?