分12lxc-start-ephemeralのその他の使い方コンテナ名の指定デフォルトではlxc-start-ephemeralコマンドは,起動する一時的なコンテナの名前を,元のコンテナの名前の後に"-"(ハイフン)とランダムな文字列を続けた形で自動的に付与します。自動的に名前を生成させる代わりに-nオプションで名前を付けられます。コマンドの実行lxc-start-ephemeralコマンドはシステムコンテナだけでなく,アプリケーションコンテナも実行できます。アプリケーションコンテナを実行する場合は,実行したいコマンドを指定します。lxc-lsct01以上の例は/bin/hostnameコマンドを実行しました。hostnameコマンドが実行されるとコンテナは終了しますので,lxc-lsコマンドで確認してもコンテナは存在しません。lxc-lsct01以上の例はbashを実行しています。lxc-startで作成したコンテナの内部を,作成したコンテナを起動する前に確認する必要がある場合に便利かも知れませんね。こちらも必要な処理が終わりexitするとコンテナは消去されています。コマンドを指定した場合,ホストOSのカーネルがlxc-attachコマンドが実行できる環境である場合はlxc-attachで実行した場合と同等の処理でコマンドを実行します。lxc-attachコマンドが動かなような古いカーネルを使っているような場合は,ssh経由でコマンドが実行されます。この場合,後で説明するユーザやssh公開鍵をオプションで設定できます。現時点でのマニュアルでは,コマンド実行はattachを使わずにssh経由で行われるという記載があります。コードを確認してみると使用の可否を判断してどのようにコマンドを実行するかを決定しています。(⁠※1)※1)筆者が送付したパッチがマージされましたので次のリリースで実際の動きに合った記述に修正されるはずです。ユーザの指定lxc-start-ephemeralでコマンドを実行する際に,そのコマンドを実行するユーザを指定できます。起動してくるコンテナでそのユーザが存在しており,そのユーザに対する必要な設定が行われている必要があります。LXCのubuntuテンプレートやdownloadテンプレートでubuntuコンテナを作成した場合は,ubuntuユーザが作成されていますので,ubuntuユーザを指定してコマンドを実行してみましょう。ユーザを指定する場合は--userオプションを使います。以上のように指定したubuntuユーザでbashが実行されていますね。存在しないユーザで実行すると,コマンドを実行してもエラーになりますからすぐにコンテナが終了します。sshでアクセスする時は,--keyオプションを使ってユーザの公開鍵をコンテナ内にコピーできます。ストレージタイプの指定lxc-start-ephemeralコマンドは,先に説明したようにoverlayfsもしくはaufsを使って一時的なコンテナを作成します。先に紹介したpre-mountスクリプトでは,一時的なコンテナ用のデータはoverlayfsの上層側ディレクトリに保存されるように設定されていました。この上層側ディレクトリをtmpfsで作成する代わりに,--storage-typeオプションでdirを指定して普通のディレクトリにできます。コンテナの実行が終了した時点でコンテナ自体が消去される場合には,ストレージタイプでdirを指定してもtmpfsを指定してもあまり変わりはないように思えます。dirが選択肢にある理由は,後で説明する--keep-dataオプションで使うためです。filesystemのタイプを--union-typeで指定できます。overlayfsかaufsを指定できます。指定したファイルシステムが使える環境である必要があります。永続的なコンテナにする--keep-dataオプションを付けてlxc-start-ephemeralコマンドを実行すると,コンテナ終了後にコンテナイメージを残せます。この場合,tmpfsを使うわけにはいきませんので普通にディレクトリを使います。--keep-dataを使うと,lxc-cloneコマンドでoverlayfsもしくはaufsを使ったスナップショットクローンを指定した場合と同じような状態になりますね。コンテナ内にホストのディレクトリをマウントするホスト上のディレクトリをコンテナ内にバインドマウントできます。これは--bdirオプションを使います。指定したパスと同じコンテナ内のパスにバインドマウントされます。lson_host上記の例では,まず/home/ubuntu/on_hostというファイルを作成して,/home/ubuntuをバインドマウントする指定でコンテナを起動しています。コンテナ内の/home/ubuntuには確かにon_hostファイルがあります。これは先に説明したlxc.hook.pre-mountを使ってマウントしています。/var/lib/lxc/ct01-212j96rq/rootfs//home/ubuntupre-mountスクリプトを確認してみると,以上のようにバインドマウントする行が存在します。まとめ今回は既に存在するコンテナの一時的なコピーを作成し,起動するlxc-start-ephemeralコマンドを紹介しました。lxc-start-ephemeralコマンドが処理中に使用しているLXCのフック機能を簡単に紹介しました。次回は今回説明していないフック機能を紹介する予定です。フック著者プロフィール加藤泰文(かとうやすふみ)2009年頃にLinuxカーネルのcgroup機能に興味を持って以来,Linuxのコンテナ関連の最新情報を追っかけたり,コンテナの勉強会を開いたりして勉強しています。英語力のない自分用にLXCのmanページを日本語訳していたところ,あっさり本家にマージされてしまい,それ以来日本語訳のパッチを送り続けています。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。