こんにちは、ふじみやです。
Ubuntu に触れているとシステムに影響を与えうる作業を行うこともあり、もし作業が失敗した場合には最悪の場合には再インストールが必要になったりなど危険性があります。
今回は、そういった場合のために、LXDというコンテナ仮想化技術を用いてサンドボックス環境を構築する方法についてご紹介をします。
サンドボックスとは
サンドボックスとは、コンピューターシステム内の一部の領域にアプリケーションやプロセスを制限した環境を提供する技術のことで、主にセキュリティ・安全性や開発・テストのために使用されます。
たとえば、Webブラウザで閲覧するインターネット上のコンテンツには悪意のあるコードやスクリプトが埋め込まれている可能性があります。このような場合、ブラウザをサンドボックス環境に置くことで、システムの他の部分に影響を与えることを防止することができます。
LXD とは
LXDは、Linuxコンテナを管理するためのオープンソースのハイパーバイザーです。
Dockerなどの他のLinuxコンテナ管理システムと比較して、より堅牢で高度な管理機能を提供するため、特に企業や大規模なシステムの管理者に好まれているようです。
LXD のインストールと初期設定
それでは前置きが長くなりましたが、LXD をインストールして設定をしていきましょう。
LXD のインストール
ターミナルを開いて次のコマンドを入力してください。
sudo snap install lxd
SnapはAPTと同じくUbuntuにおけるパッケージ管理システムの形式で、両者の主な違いは以下の通りです。
- パッケージの形式:APTは、パッケージを.deb形式で提供します。一方、Snapは、アプリケーションをカプセル化して1つのパッケージとして提供します
- 依存関係の管理:APTは、パッケージの依存関係を管理するために、別途パッケージをインストールする必要があります。一方、Snapは、アプリケーションに必要なすべての依存関係を含めて一つのパッケージとして提供するため、依存関係の管理が簡単になります
- 更新:APTは、パッケージの更新を行う場合、新しいパッケージをインストールする必要があります。一方、Snapは、アプリケーションの更新が容易になります。Snapは、自動的に更新を行うことができるため、アプリケーションの更新を手動で行う必要がありません。
APTは、Ubuntuの標準的なパッケージ管理システムであり、多くのパッケージがAPT形式で提供されています。一方、Snapは、アプリケーションの配布や更新が容易になるというメリットがあります。
LXD の初期設定
インストールが完了したらスーパーユーザーとして次のコマンドを入力して初期設定をしてきましょう。
$ sudo su
# lxd init
このコマンドにより、初期設定用のいくつかの質問が表示されます。初期設定は基本的にはデフォルトのままで問題ありませんが、必要に応じて設定を変更することもできます。
サンドボックス環境の作成とアクセス
サンドボックス環境の作成
それでは LXD を利用してサンドボックス環境を作っていきます。
# lxc launch ubuntu:22.04 sandbox
上記のコマンドは、Ubuntu 22.04のイメージを使用して、名前が「sandbox」のサンドボックス環境を作成するという意味です。
サンドボックス環境へのアクセス
サンドボックス環境にアクセスするためには、以下のコマンドを実行します。
# lxc exec sandbox /bin/bash
このコマンドによりサンドボックス環境にアクセスしbashシェルを起動できます(下のような表記になります)。
root@virtualbox:/home/ubuntu# lxc exec sandbox /bin/bash
root@sandbox:~#
サンドボックス環境の停止
サンドボックス環境を停止させるためには、以下のコマンドを入力します。
root@sandbox:~# exit
root@virtualbox:/home/ubuntu# lxc stop sandbox
一度停止させたサンドボックス環境へと再アクセスするためには、次のコマンドを入力してインスタンスを開始させてからアクセスをしましょう。
root@virtualbox:/home/ubuntu# lxc start sandbox
root@virtualbox:/home/ubuntu# lxc exec sandbox /bin/bash
サンドボックス環境の削除
サンドボックス環境を削除する場合は、サンドボックス環境のインスタンスを停止させてから以下のコマンドを実行します。
# lxc delete sandbox
まとめ
今回は LXD を使用した Ubuntu でのサンドボックス環境の作成方法をご紹介しました。
普段はあまり意識することはないかと思いますが、 これから開発をやっていこうと思われている方やインターネットからプログラムをダウンロードしたりする場合には LXD を使用して一度検証をしてみても良いかもしれません。
それではまた。
- AWSのUbuntuインスタンスにリモートデスクトップ接続してみよう
- VirtualBoxで仮想環境を作ってみる【Ubuntu 22.04】
- Ubuntu 22.04にVisual Studio Codeをインストールする
- リモート接続用Ubuntu 22.04のデスクトップ環境を変更する方法【xrdp】
- Ubuntu 22.04でのポート開放とアクセス制限【ufw】
- Pythonの統合開発環境を整える【Ubuntu 22.04/Anaconda】
- Ubuntu 22.04でKindle for PCを利用する【Wine】
- VirtualBox 7.0にUbuntu 22.04をインストールしたらターミナルが起動できなくなった話
コメント