とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

イベントレポート 第9回とことんDevOps勉強会 「Dockerに疲れた人のためのLXDではじめるシステムコンテナ入門」

今回は日本仮想化技術の水野から「Dockerに疲れた人のためのLXDではじめるシステムコンテナ入門」と題して、LXDを例にシステムコンテナについて紹介いたしました。コンテナ技術と言えばDockerが一般的ですが、Dockerはアプリケーションの配布には向いているものの、試行錯誤をしたりコンテナの中をいじったりすることには向いていません。そこで、もう一つの選択肢としてシステムコンテナを紹介しています。LXDはUbuntuプロジェクトのスポンサーでもあるCanonical社が提供するシステムコンテナで、いわば軽量な仮想マシン感覚でOSのフル機能を動かすことができるコンテナです。LXDを使えば簡単に試行錯誤するための環境を構築することができます。

振り返りも兼ねて当日の配信の様子をYoutubeでアーカイブしていますので、是非ご覧ください。当日参加できなかった方も、これを機会にとことんDevOps勉強会に興味を持っていただければと思います。また、当日いただいたQ&Aに関してもこちらのブログでまとめていますので、ぜひご覧ください。

セミナー動画 - YouTube Live アーカイブ

www.youtube.com

発表資料 - Speaker Deck

speakerdeck.com

Q&A まとめ

Q: esxiに入れたjammyでsudo lxd init打つとコマンドが見つからないというエラーが発生します。

 

A: 基本的にはUbuntu ServerのISOイメージで構築している場合は標準でインストールされていますが、もし入っていない場合にはsnapでインストールしてください。Server版でもDesktop版と同じものが提供されています。

Q: LXDのネットワークがどうなってるのか知りたい

 

A: lxd initでデフォルトの設定にした場合、lxdbr0というブリッジインターフェイスが生成され、その下にローカルなサブネットワークが作られます。ホスト側からはlxd用のサブネットワークへのルーティングが追加される形になります。LXDで立ち上げたサーバーを外部に公開したい場合は、ホスト側でiptablesを使ってルーティングするか、macvlanなどを使って直接公開する必要があります。

Q: Dockerfileみたいな自動化はどうしたらいいの?

 

A: Dockerとは異なり、自分でビルドすることはほとんどないため、他の仮想マシンなどと同様に、AnsibleやPuppet、Chefなどを使って環境構築をするのが良いと思います。またUbuntuのコンテナであれば、cloud-initでの初期化も有効です。

Q: 外部からのアクセスを制御するのはLXDのコマンド等でやるんですか?docker -pみたいなものがあるのかどうか

 

A: ネットワークインターフェイスを制御するようなコマンドはあります。lxc config xxxxというような形で、各コンテナのネットワークの構成などを設定できます。ただし、コンテナ内でOSが動いているので、固定IPアドレスの設定などをする場合には、コンテナ内で稼働するOSの中で設定を行う必要があります。

Q: ボリュームみたいな機能はあるんですか?

 

A: ストレージを足すというようなことはできます。初期に設定したストレージの容量を足したり、新たに別ストレージを追加するということもできます。

Q: GPUを使ったりできますか?

 

A: できます。gihyo.jpにUbutu Weekly Recipeという連載記事があるのですが、そこにUbuntu Japanese チームの柴田さんがGPUを使ってSteamを動かすような記事を書いているので、それが参考になるかと思います。

gihyo.jp