サーバの状態
接続元 ()<デモサーバは現在ユーザセッションを セッション実行中です (最大 セッション中) デモサービスは現在メンテナンスのために停止しています。数分後にはサービスを再開する予定です。 あなたがお使いのブラウザからデモサーバへアクセスできません。
おそらく、あなたのサイトのファイアウォールかプロキシの問題、もしくはサーバ側のネットワーク、電源、その他の深刻な障害のためと思われます。
サービス利用規約
試用開始
コンテナの起動中...
- はじめに
- 最初のコンテナ
- コンテナの情報を見る
- コンテナの停止と削除
- インスタンスの設定
- コンテナ内でのコマンド実行
- コンテナ内のファイルの操作
- スナップショット
- 最後に
今、あなたは LXD コンテナ内に root としてログインしています。このコンテナには LXD がネストしてインストールされています。
多少負荷のある状態で SSL 鍵を生成する必要があるため、最初の起動には数秒かかる可能性があります。それ以降に実行するコマンドはすぐに実行されるはずです。
LXD をはじめるには、この LXD の主な機能を案内するステップバイステップのチュートリアルに沿って試してみてください。もしくは man ページや --help オプションを色々見たりして LXD を調べて、色々発見してみてください。
Tip
チュートリアルのいずれかのコマンドをクリックし、ターミナルにコピーしてください。
LXD はイメージベースです。そしてさまざまなイメージサーバーからイメージをロードできます。このチュートリアルでは、images: サーバーを使います。
lxc image list images:
コンテナをいくつか起動するところから始めます。
-
Ubuntu 20.04 イメージを使って "first" という名前のコンテナを起動します:
lxc launch images:ubuntu/20.04 first
最初はイメージをダウンロードして展開しなければならないため、コンテナの起動には少し時間がかかることに注意してください。 -
同じイメージを使って "second" という名前のコンテナを起動します:
lxc launch images:ubuntu/20.04 second
イメージを取得済みなので、最初の(first)コンテナの起動に比べると早く起動します: -
最初の(first)コンテナを "third" という名前のコンテナとしてコピーします:
lxc copy first third
-
Alpine Edge イメージを使って "alpine" という名前のコンテナを起動します:
lxc launch images:alpine/edge alpine
起動したコンテナのリストをチェックします:
lxc list
3 つ目のコンテナ以外が起動していることが確認できるでしょう。これは、3 つ目のコンテナを最初の(first)コンテナからコピーして作成はしたものの、起動処理を実行していないからです。
3 つ目のコンテナを次のように起動できます:
lxc start third
それぞれのコンテナの情報をもう少し詳しく見ることができます:
lxc info first lxc info second lxc info third lxc info alpine
チュートリアルではこの後、これらのコンテナすべては必要ありませんので、不要なコンテナを消しましょう。
- 2 つ目のコンテナを停止します:
lxc stop second
- 2 つ目のコンテナを削除します:
lxc delete second
- 3 つ目のコンテナを削除します:
lxc delete third
このコンテナはまだ実行中なので、最初に停止しないとエラーメッセージが出るでしょう。代わりに、強制削除できます:lxc delete third --force
インスタンスに設定できる制限や設定オプションがいくつか存在します。その概要については インスタンスの設定 (英語版: Instance configuration)をご覧ください。
リソース制限を持つコンテナをもう 1 つ作ってみましょう。
- コンテナを起動し、1vCPU と 192MiB メモリーの制限を設定します:
lxc launch images:ubuntu/20.04 limited -c limits.cpu=1 -c limits.memory=192MiB
- 現在の設定を確認し、制限が設定されていない最初の(first)コンテナの設定と比べてみましょう:
lxc config show limited lxc config show first
- 親環境のシステムと 2 つのコンテナで空きメモリーと使用済メモリーの量をチェックしましょう:
free -m lxc exec first -- free -m lxc exec limited -- free -m
デフォルトでは、コンテナは親環境からリソースを軽症するため、親環境と最初の(first)コンテナではメモリの総量が同じであることに注意してください。一方で、制限を設定したコンテナは 192MiB だけが使用できます。 - 親環境と 2 つのコンテナで使用できる CPU の数をチェックしましょう:
nproc lxc exec first -- nproc lxc exec limited -- nproc
ふたたび、親環境と最初の(first)コンテナの数は同じで、制限を設定したコンテナでは現象していることに注意してください。
実行中のコンテナの設定を更新することもできます。
- コンテナのメモリ制限を設定する:
lxc config set limited limits.memory=128MiB
- 適用した設定をチェックする:
lxc config show limited
- コンテナで使用できるメモリ量をチェックする:
lxc exec limited -- free -m
数値が変わっていることを確認してください。
コンテナ内でコマンドを実行してみましょう。
- コンテナ内でインタラクティブなシェルを起動します:
lxc exec first -- bash
- 例えば、コマンドを入力するとオペレーティングシステムについての情報が表示されます:
cat /etc/*release
- インタラクティブなシェルを抜けます:
exit
- alpine コンテナで同じことを繰り返してみましょう:
lxc exec alpine -- ash cat /etc/*release exit
-
コンテナにログインしてコマンドを実行する代わりに、ホストから直接コマンドを実行できます。例えば、コンテナ上にコマンドラインツールをインストールし、それを実行できます:
lxc exec first -- apt-get update lxc exec first -- apt-get install sl -y lxc exec first -- /usr/games/sl
コンテナのファイルにアクセスしたり、ファイルを操作できます。
- コンテナからファイルを取得します:
lxc file pull first/etc/hosts .
- ファイルにエントリーを追加します:
echo "1.2.3.4 my-example" >> hosts
- コンテナにファイルを戻します:
lxc file push hosts first/etc/hosts
- ログファイルにアクセスするために同じメカニズムを使います:
lxc file pull first/var/log/syslog - | less q
LXD ではコンテナのスナップショットを作成したり、スナップショットからリストアしたりできます。
- "clean" という名前のスナップショットを作ります:
lxc snapshot first clean
- スナップショットが作られたことを確認します:
lxc list first lxc info first
lxc list
はスナップショットの数を表示します。lxc info
はスナップショットごとの情報を表示します。 - コンテナを破壊します:
lxc exec first -- rm -Rf /etc /usr
- 壊れたことを確認します:
lxc exec first -- bash
bash
コマンドを削除したので、シェルが実行できないことに注意してください。 - スナップショットの状態にコンテナをリストアします:
lxc restore first clean
- すべて通常状態に戻ったことを確認します:
lxc exec first -- bash exit
- スナップショットを削除します:
lxc delete first/clean
この入門が LXD について、LXD でできること、LXD が簡単に使えることを理解するのに役立つ良い入門となれば幸いです。
あなたが LXD を使い、最新の機能を体験したいということであれば、このデモサービスを使うことを歓迎します。
楽しんでください!
サーバが上限に達しています。数分後にもう一度お試しください。
同時に実行できるセッションの最大数に達しました。現在実行中のセッションが期限切れになるまでお待ちください。
あなたはサービス利用規約への同意を行わなかったため、サービスの使用を禁止されています。
原因不明のエラーが起きました。数分後にもう一度お試しください。
あなたが接続しようとしているコンテナが存在しません。