デスクトップ環境と VNC を使用して Docker で Ubuntu Linux を実行する |
デスクトップ環境と VNC を使用して Docker で Ubuntu Linux を実行する方法に関するこのガイドへようこそ。多くの場合、物理マシン/仮想マシンに Ubuntu デスクトップをインストールするのは面倒な作業であり、プロビジョニングとインストールに多くの時間がかかります。デスクトップ環境で Ubuntu Linux を実行するために使用できる簡略化された方法があります。 Docker に感謝します。
Docker イメージを使用すると、LXDE および LXQt デスクトップ環境で Ubuntu を実行し、HTML5 VNC インターフェイス経由でアクセスできます。 Docker イメージを使用して次のような他の構成を作成できるため、これはさらに魅力的です。
- HTTPベース認証
- SSL暗号化
- デフォルトのデスクトップ ユーザー設定
- 画面解像度の調整
- jinja テンプレートから Dockerfile を生成する
- サウンド (プレビュー バージョンおよび Linux のみ)
- サブディレクトリ (相対 URL ルート) にデプロイします。
さらに、Ubuntu には次のようないくつかのバージョンとフレーバーがあります。
- 焦点: Ubuntu 20.04 (最新)
- focus-lxqt: Ubuntu 20.04 LXQt
- バイオニック: Ubuntu 18.04
- bionic-lxqt: Ubuntu 18.04 LXQt
- xenial: Ubuntu 16.04 (非推奨)
- 信頼できる: Ubuntu 14.04 (非推奨)
飛び込んでみましょう!
ステップ 1 – システムに Docker をインストールする
もちろん、Ubuntu Docker イメージを実行できるようにするには、システムに Docker エンジンがインストールされている必要があります。以下は、Linux ディストリビューションに Docker エンジンをインストールするのに役立つ専用ガイドです。
- Linux システムに Docker CE をインストールする方法
Docker を起動し、システム起動時に自動的に実行できるようにします。
sudo systemctl start docker && sudo systemctl enable dockerシステム ユーザーを Docker グループに追加すると、sudo を使用せずに Docker コマンドを実行できるようになります。
sudo usermod -aG docker $USER
newgrp dockerインストールされている Docker のバージョンを確認します。
$ docker version
Client: Docker Engine - Community
Version: 20.10.12
API version: 1.41
Go version: go1.16.12
Git commit: e91ed57
Built: Mon Dec 13 11:45:48 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
....ステップ 2 – Ubuntu Docker イメージをプルする
前に述べたように、プルできる Ubuntu のイメージがいくつかあります。これらのイメージは Docker ページで入手でき、示されているように Docker を使用してプルできます。
##For Ubuntu 20.04 (latest)
docker pull dorowu/ubuntu-desktop-lxde-vnc:latest
##For Focal with LXDE
docker pull dorowu/ubuntu-desktop-lxde-vnc:focal
##For Focal with LXQt
docker pull dorowu/ubuntu-desktop-lxde-vnc:focal-lxqt
##For Bionic with LXDE
docker pull dorowu/ubuntu-desktop-lxde-vnc:bionic
##For Bionic with LXQt
docker pull dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt
##For Trusty
docker pull dorowu/ubuntu-desktop-lxde-vnc:trusty
##For Xenial
docker pull dorowu/ubuntu-desktop-lxde-vnc:xenial目的の Ubuntu イメージを取得したら、それがローカル レジストリで利用可能かどうかを確認します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dorowu/ubuntu-desktop-lxde-vnc latest 1a89db715923 10 months ago 1.32GBステップ 3 – デスクトップ環境で Ubuntu コンテナを実行する
ここでは、Ubuntu コンテナーを実行して直感的なエクスペリエンスを実現する方法について、構成を含むいくつかの方法を説明します。
クイックスタート。
以下のコマンドを使用して、コンテナを実行し、ポート 6080 経由でアクセスするだけです。
docker run -d \
--name ubuntu_desktop \
-v /dev/shm:/dev/shm \
-p 6080:80 \
dorowu/ubuntu-desktop-lxde-vnc上記のコマンドでは、コンテナ名を ubuntu_desktop に設定し、永続ボリュームを /dev/shm に設定しています。 ubuntu-desktop-lxde-vnc を、取得した適切なイメージに忘れずに置き換えてください。
コンテナがポートを公開した状態で実行されているかどうかを確認します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f8fd69e3865e dorowu/ubuntu-desktop-lxde-vnc "/startup.sh" 17 seconds ago Up 15 seconds (health: starting) 0.0.0.0:6080->80/tcp, :::6080->80/tcp ubuntu_desktop出力からわかるように、ポート6080が公開されています。ファイアウォールの通過を許可し、URL http://IP_Address:6080/ を使用して Ubuntu デスクトップへのアクセスを続行します。
HTTPベース認証を設定する
上記のコマンドに HTTP_PASSWORD 変数を追加することで、ポート 6080 で HTTP ページにアクセスするときに使用するパスワードを設定することもできます。
docker run -d \
--name ubuntu_desktop \
-e HTTP_PASSWORD=Passw0rd \
-v /dev/shm:/dev/shm \
-p 6080:80 \
dorowu/ubuntu-desktop-lxde-vncページにアクセスすると、パスワードの入力が求められます。
VNC ビューアを有効にする
VNC ビューアには別のポート 5900 経由でアクセスしますが、アクセスするにはこのポートを公開する必要があります。 VNC Viewer ポートは以下のように公開できます。
docker run -d \
--name ubuntu_desktop \
-v /dev/shm:/dev/shm \
-p 6080:80 \
-p 5900:5900 \
dorowu/ubuntu-desktop-lxde-vncここで、VNC ビューアはポート 5900 で利用できるはずです。
上記のコマンドに VNC_PASSWORD 変数を追加することで、ビューアのパスワードを設定することもできます。
docker run -d \
--name ubuntu_desktop \
-e VNC_PASSWORD=StrongPassword \
-v /dev/shm:/dev/shm \
-p 6080:80 \
-p 5900:5900 \
dorowu/ubuntu-desktop-lxde-vncVNC ビューアにアクセスするときは、VNC にアクセスするために設定されたパスワードを入力する必要があります。
SSLで暗号化します。
暗号化用の SSL 証明書を生成できます。このガイドでは、以下のように自己署名証明書を生成します。
続行する前に、OpenSSL がシステムにインストールされていることを確認してください。
mkdir -p ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl/nginx.key -out ssl/nginx.crt
コンテナを実行するときに、 以下のように SSL_PORT と生成された証明書への パス を指定する必要があります。
docker run -d \
--name ubuntu_desktop \
-v /dev/shm:/dev/shm \
-p 6081:443 \
-e SSL_PORT=443 \
-v ${PWD}/ssl:/etc/nginx/ssl \
dorowu/ubuntu-desktop-lxde-vncここでは、URL https://IP_address:6081 を使用して Ubuntu デスクトップにアクセスできます。
デフォルトのデスクトップ ユーザーを設定する
コンテナを実行するとき、デフォルトのユーザーはルートです。ただし、次のように USER 変数と PASSWORD 変数を使用して別のユーザーを追加できます。
docker run -d \
--name ubuntu_desktop \
-e USER=thor \
-e PASSWORD=Passw0rd \
-v /dev/shm:/dev/shm \
-p 6080:80 \
dorowu/ubuntu-desktop-lxde-vncここで、Passw0rd というパスワードを持つ別のユーザー thor を追加します。
サブディレクトリにデプロイする
コンテナはサブディレクトリにデプロイされ、 ページにアクセスするときのプレフィックスとして機能します。たとえば、ここでは URL サブディレクトリを新規として指定します。
次に、RELATIVE_URL_ROOT 環境変数を使用してサブディレクトリを指定します。
docker run -d \
--name ubuntu_desktop \
-e RELATIVE_URL_ROOT=new \
-p 6080:80 \
dorowu/ubuntu-desktop-lxde-vncディレクトリには先頭と末尾のスラッシュ (/) を含めないでください。これで、URL http://IP_address:6080/new/ を使用して Ubuntu デスクトップにアクセスできるようになりました。
画面の解像度を設定します。
通常、仮想デスクトップはサーバーに接続するときにブラウザのウィンドウ サイズに自動的に調整されます。ただし、以下のように変数 RESOLUTION を使用して固定解像度を設定できます。
docker run -d \
--name ubuntu_desktop \
-v /dev/shm:/dev/shm \
-p 6080:80 \
-e RESOLUTION=1360x768 \
dorowu/ubuntu-desktop-lxde-vnc仮想デスクトップの解像度が1360×768(16:9)に設定されます。
サウンドを有効にする
まず、以下のカーネル モジュールを Linux システムに挿入します。
sudo modprobe snd-aloop index=2次に、以下のようにサウンドを有効にしてコンテナを実行します。
docker run -d \
--name ubuntu_desktop \
-v /dev/shm:/dev/shm \
-p 6080:80 \
--device /dev/snd \
-e ALSADEV=hw:2,0 \
dorowu/ubuntu-desktop-lxde-vnc上記のコマンドでは、 –device /dev/snd -e ALSADEV=hw:2,0 によってコンテナにサウンドが許可され、 基本的な ASLA が設定されます。 > カード 2 を使用するためのデバイス設定。これで、サウンドが有効になったコンテナが完成しました。サウンド/ビデオを再生してこれをテストします。
ステップ 4 – コンテナを管理する
次のコマンドを使用して、Ubuntu コンテナを簡単に停止および起動できます。
##To stop
docker stop ubuntu_desktop
##To start
docker start ubuntu_desktop
##To delete
docker rm ubuntu_desktopさらに、以下のサービスファイルを作成することで、コンテナをシステムサービスとして管理することができます。
sudo vim /etc/systemd/system/ubuntu-container.serviceファイルに次の行を追加します。
[Unit]
Description=Ubuntu container
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a ubuntu_desktop
ExecStop=/usr/bin/docker stop -t 2 ubuntu_desktop
[Install]
WantedBy=local.target次に、システム デーモンをリロードします。
sudo systemctl daemon-reloadコンテナーを起動し、起動時に自動的に実行されるようにします。
sudo systemctl start ubuntu-container
sudo systemctl enable ubuntu-containerサービスのステータスを確認します。
楽しむ!
終わりの思い。
これで、デスクトップ環境で目的の Ubuntu フレーバーを実行する最も簡単な方法が得られました。さらに、コンテナをできるだけ直感的にするために、コンテナに行うことができるさまざまな構成を見てきました。
関連記事。
- Podman|DockerコンテナでMicrosoft SQL Serverを実行する
- DockerコンテナでQuestDB SQLデータベースを実行する方法
- UbuntuにFreeOfficeをインストールする方法





