Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Dockerを使ったクライアントハイパーバイザー

21,672 views

Published on

2018/03/12 Docker Meetup Kansai #1
LT 「Dockerを使ったクライアントハイパーバイザー」

Published in: Technology
  • Hi there! I just wanted to share a list of sites that helped me a lot during my studies: .................................................................................................................................... www.EssayWrite.best - Write an essay .................................................................................................................................... www.LitReview.xyz - Summary of books .................................................................................................................................... www.Coursework.best - Online coursework .................................................................................................................................... www.Dissertations.me - proquest dissertations .................................................................................................................................... www.ReMovie.club - Movies reviews .................................................................................................................................... www.WebSlides.vip - Best powerpoint presentations .................................................................................................................................... www.WritePaper.info - Write a research paper .................................................................................................................................... www.EddyHelp.com - Homework help online .................................................................................................................................... www.MyResumeHelp.net - Professional resume writing service .................................................................................................................................. www.HelpWriting.net - Help with writing any papers ......................................................................................................................................... Save so as not to lose
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❶❶❶ http://bit.ly/39sFWPG ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ❶❶❶ http://bit.ly/39sFWPG ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Dockerを使ったクライアントハイパーバイザー

  1. 1. Dockerを使った クライアントハイパーバイザー 2018/03/12 Docker Meetup Kansai #1 LT (@kunst1080)
  2. 2. ※このマシン自体がデモ機です
  3. 3. 自己紹介 ● 名前: くんすと(@kunst1080) ● お仕事: 受託でWEBサービスを開発している     フルスタックワンオペエンジニア ● その他: シェル芸勉強会 大阪サテライト    Software Design誌「シェル芸人からの挑戦状」(PN: 中村)
  4. 4. 趣味でやってる プロジェクトのご紹介
  5. 5. Dockerを使った クライアントハイパーバイザー
  6. 6. クライアントハイパーバイザー? デスクトップ仮想化の方式 ● リモートデスクトップ形式 ○ リモートで仮想マシンを実行、端末へ画面を転送する ● クライアントハイパーバイザー方式 ○ 仮想マシンをダウンロードし、端末で実行する
  7. 7. デスクトップ用途としての Docker
  8. 8. アーキテクチャ
  9. 9. i3wm VS Code Google Chrome (音も出ます) Slack
  10. 10. なぜこんな無謀なことを?
  11. 11. 目的(モチベーション) ● OS・ソフトウェアのアップデートは人間のやるべきことじゃない ○ Windows Update ○ OS X - 最新のソフトウェア・アップデート ○ Ubuntuソフトウェアセンター ○ pacman -Syu
  12. 12. 目的(モチベーション) ● OS・ソフトウェアのアップデートは人間のやるべきことじゃない ○ アップデート中にリソースが食われ不安定に… ○ パッケージの依存関係大丈夫? ○ 古いパッケージのゴミが残るのでは? ○ 再起動にわりと時間がかかってつらい…
  13. 13. アップデート済みの OSイメージが 降ってきてほしい
  14. 14. Disposable Components (破棄可能なデスクトップ環境)
  15. 15. 実装
  16. 16. Xサーバを直接動かすDocker Image の構成 ● kunst1080/x11-base - Xサーバと基本的なツール ● kunst1080/x11-wm - x11-base + Window Manager ● kunst1080/desktop - x11-wm + よく使うアプリケーション ※ビルド時間の短縮や調査時の切り分けなどのために分割してい ます。構成は変更するかも。
  17. 17. Xサーバ起動の流れ ● docker pull kunst1080/desktop ● openssl passwd -1 > .passwd ○ ※パスワードファイルを作成しておく ● docker rmi desktop ● docker build . -t desktop --build-arg tag=i3 --build-arg passwd=$(cat .passwd) ○ ※ユーザーの作成はここで実施 ※一連の処理はそれぞれシェルスクリプト化済み
  18. 18. Xサーバ起動の流れ ● docker run --rm --privileged --shm-size=8gb -v /run/udev:/run/udev -v /run/dbus:/run/dbus -v /run/systemd:/run/systemd desktop $* ※引数は一部省略
  19. 19. 実現されること ● 開発環境の構築手順をDockerfileで表現できる ● Xを含むユーザーランドの作成・アップデートを Docker Hubにおまかせ ● 最新のデスクトップ環境を取得するためには、docker pullする だけでOK ● docker runするたびに環境が新しくなる ● X関連のライブラリをコンテナに閉じ込めることができ、ホストの 構成を最小化できる
  20. 20. まとめ、課題
  21. 21. 実現できたこと ● docker run で Xサーバーが起動した ○ やってみればできるもんですね ● Docker HubでビルドしたイメージからXサーバ起動できる ● 普通に使える ○ 2017年の年末くらいから使ってます ○ 3ヶ月くらい使用中
  22. 22. ハマりどころ ● GPUを使うアプリの挙動がおかしいかも? ● Systemd・D-Busつらい ○ だいたい解決したはず… ● キー入力をハンドルするイベントがたまに拾えなくなる ○ 週一程度の頻度で発生している ○ 謎 ● こんなことをやっている人間は世界に数人しかいないっぽい
  23. 23. 乗り越えてきた地雷 ● 共有メモリ不足でChromeが突然死 ○ --shm-size=8gb でクリア! ● systemdどうするの問題 ○ ホストの/run/systemdをマウント ● dbusどうするの問題 ○ ホストの/run/dbusをマウント
  24. 24. 乗り越えるために ● dockerの知識より、むしろLinuxの知識を深める ○ BSDも参考になる ● chroot・jail・LXC関連の情報を漁る ● Xorgのコミットログを漁る ○ つらい
  25. 25. 解決できなさそうなこと ● カーネルの更新などはホストOSで行う必要がある ○ CoreOSやAtomicHostなどがそのうちやってくれそう……?
  26. 26. 残課題 ● コンテナの自動ビルド ○ Webhookを使ってLambdaから定期ビルドする予定 ● Xセッションの保存・リストア・コピー ● Dockerホストの無停止アップデートが実現されるのを待つ ● このアーキテクチャへの名前付け ○ 「DockerでX11を動かす」とか 「Dockerで作るクライアントハイパーバイザ」とか…… わかりにくい

×