LoginSignup
81
70

ブラウザで動かせる「Linux」の「Ubuntu 22.04」のデスクトップ版(Xfce)のDockerイメージ「docker-ubuntu-desktop」を作りました

Posted at

Ubuntu 22.04がブラウザで動く様子

screenshot.png
本家Ubuntu DesktopのUIと違い、Xfceデスクトップ環境を利用しています。


・ソースコードは、以下GitHubリポジトリで公開しております。
https://github.com/takahashi-akari/docker-ubuntu-desktop


・Dockerイメージは、DockerHubで公開しております。
https://hub.docker.com/r/akarita/docker-ubuntu-desktop

環境

・ OS: macOS(M1)
・ メモリ: 16GB
・ その他: Dockerがインストールされていること

概要

macOSのM1チップがメインの開発環境なので、すぐにLinuxOS(x86_64)環境が立ち上がって、触れることを目的として、ブラウザで、Ubuntu22.04が操作できるように環境を整えました。

利用方法

以下のコマンドを実行します。

$ docker run -it --platform=linux/amd64 -p 6080:6080 akarita/docker-ubuntu-desktop

以下のURLにアクセスします。

SSLなし: http://localhost:6080/vnc.html

SSLあり: https://localhost:6080/vnc.html (証明書のエラーが出ます)

Dockerfileに関して

Dockerfile
FROM --platform=linux/amd64 ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive
RUN apt update -y && apt install --no-install-recommends -y xfce4 xfce4-goodies tigervnc-standalone-server novnc websockify sudo xterm init systemd snapd vim net-tools curl wget git tzdata
RUN apt update -y && apt install -y dbus-x11 x11-utils x11-xserver-utils x11-apps
RUN apt install software-properties-common -y
RUN add-apt-repository ppa:mozillateam/ppa -y
RUN echo 'Package: *' >> /etc/apt/preferences.d/mozilla-firefox
RUN echo 'Pin: release o=LP-PPA-mozillateam' >> /etc/apt/preferences.d/mozilla-firefox
RUN echo 'Pin-Priority: 1001' >> /etc/apt/preferences.d/mozilla-firefox
RUN echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:jammy";' | tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
RUN apt update -y && apt install -y firefox
RUN apt update -y && apt install -y xubuntu-icon-theme
RUN touch /root/.Xauthority
EXPOSE 5901
EXPOSE 6080
CMD bash -c "vncserver -localhost no -SecurityTypes None -geometry 1024x768 --I-KNOW-THIS-IS-INSECURE && openssl req -new -subj "/C=JP" -x509 -days 365 -nodes -out self.pem -keyout self.pem && websockify -D --web=/usr/share/novnc/ --cert=self.pem 6080 localhost:5901 && tail -f /dev/null"

一行目の「--platform=linux/amd64」で、本来arm64アーキテクチャのOSで、amd64(x86_64)のLinuxOSを扱えるようになります。


TigerVNC( https://tigervnc.org/ )を利用してVNCサーバーを構築して、
noVNC(websockify: https://kanaka.github.io/noVNC/ )を利用して、ブラウザで表示できるようにします。(SSLにも対応させています)


FireFoxも最低限のデスクトップアプリケーションとして入れてあります。


その他、arm64v8、riscv64アーキテクチャにも対応予定です。


以上です。

81
70
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
81
70