以前、DockerでUbuntuコンテナを立ち上げましたが、Linuxコマンドに慣れているひとでないと、使いづらいですよね。
なので、Ubuntuの画面(GUI)が欲しい。
というわで、今回は以下のように、Dockerコンテナで起動したUbuntuのGUIをローカルに表示させてみました。

といっても、方法は非常に簡単です。
結論から言えば、オフィシャルイメージではありませんが、Docker HubにGUI付きのUbuntuイメージがありましたので、それを立ち上げるだけです。
GUI付きUbuntuの起動
Docker Hubに、GUI付きUbuntuイメージがあります。
dorowu/ubuntu-desktop-lxde-vnc – Docker Image | Docker Hub
この情報を元にすれば、コンテナを立ち上げるには、Docker上で以下を実行すればOKです。
docker run -d -p 8080:80 dorowu/ubuntu-desktop-lxde-vnc
コンテナが立ち上がっているかどうかは、docker psなどのコマンドか、アタッチすれば確認できるでしょう。
後は、ローカルのブラウザ(chromeとかMicrosoft Edgeとか)で、「http://127.0.0.1:8080/」のurlで開けばOKです。
そうすれば、UbuntuのGUIが表示されると思います。

コンテナの中身としてはUbuntu 20.04.2なのですが、GUIとしてはよく見る紫色の画面とは違っていますね。どうやら、『LXDE』というデスクトップ環境らしいです。
まぁとにかく、これでGUIでコンテナを操作できるようになりました。
もし、ブラウザでエラーが出るのなら、ローカルマシンのファイアウォールの設定が有効になってしまっているのかもしれません。
docker-composeで起動する
個人的にはあまりdockerコマンドのみで毎回立ち上げるのは好きではないので、環境条件をdocker-composeファイルに閉じ込めます。
ディレクトリ構成
Ubuntu-env
├─ docker-compose.yml
└─ gui
└─ Dockerfile
Dockerfile
FROM dorowu/ubuntu-desktop-lxde-vnc
docker-copose.yml
version: '3'
services:
ubuntu-gui:
build: ./gui
container_name: 'ubuntu-gui'
tty: true
ports:
- 8080:80
ポイントは、docker-compose.ymlでポートを指定することです。「ローカル側のポート:コンテナのポート」です。
次に、docker-composeでコンテナを立ち上げます。
・ビルド
docker-compose build
・起動
docker-compose up -d
最後に、先ほどと同様、ブラウザから「http://127.0.0.1:8080/」でGUIを開きます。
コンテナを停止するときは、
docker-compose stop
で良いでしょう。このとき、ブラウザからの接続はできなくなるはずです。
コメント