Ubuntu 22.04がブラウザで動く様子
本家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に関して
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アーキテクチャにも対応予定です。
以上です。