仮想化 - みる会図書館


検索対象: Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!
224件見つかりました。

1. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Pa 1 Docke 「とは何か、なぜ注目されるのか 1-02 コンテナ技術で軽量な仮想化を実現 Docker の大きな特徴は、コンテナ技術に基づく OS レベル仮想化によって、アプリケーションをそ の実行環境こと軽快に稼働できることです。ここでは、コンテナ技術や OS レベル仮想化とは何か、 そしてそれらの技術を Docke 「がどのように活用して、どのような利点を生んでいるのか、などにつ いて紹介します。 コンテナ技術で OS レベル仮想化を実現 Chapter この 1 0 年ほど、 ] 台の物理 PC や物理サーバー上で複数の OS やアプリケーション実行 環境を稼働させる「仮想化」技術の活用が進んでいます。仮想化技術によって、 PC/ サー バーの有り余る処理能力を効率的に利用したり、物理 PC / サーバーにしばられない柔軟 な運用管理を実現したりできるからです。 仮想化技術には、いくつかの種類があります。現在、 PC やサーバーで一般的に利用さ れる仮想化技術は、主に「ハードウェアレベル仮想化」と「 OS レベル仮想化」の 2 つに 分類できます ( 1-2-1 ) 。 ハードウェアレベル仮想化と、 OS レベル仮想化の主な違い ハードウェアレベル仮想化 仮想化ソフトは、サーバーハードウェアを疑似的に再現した「仮想マシ ン」を提供。ユーザーは仮想マシン上に、通常のサーバーを利用するの と同様にゲスト OS をインストールして、その上でアプリケーションを >1-2-1 20 稼働させる アプリケー アプリケーション 仮想マシン ゲスト OS アプリケーション ゲスト OS 仮想マシン ション 仮想化ソフト ホスト OS

2. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

( hap を e 「 2-04 Windows / OS X に Docke 「をインストールする docke 「 -machine コマンドでは、サブコマンドを指定することで Docke 「サーバーが稼 働する Vi 「 tua 旧 ox 仮想マシンを管理できます。主なサブコマンドは次の通りです。 仮想マシンの起動 $ docker-machine start 仮想マシン名 Pa ュ 2 E nter 仮想マシンの停止 $ docker-machine stop 仮想マシン名 Enter : 仮想マシンの稼動状態表示 $ docker-machine status 仮想マシン名 Enter 仮想マシンの旧アドレス表示 $ docker-machine ip 仮想マシン名 E nter 仮想マシンにログインする $ docker-machine ssh 仮想マシン名 Enter Docke 「の利用に必要な環境変数を調べる $ docker-machine env 仮想マシン名 Enter 仮想マシンの一覧を表示 $ docker-machine ls Enter ー Docker を利用できない場合の対処 Docke 「操作用の端末で docke 「コマンドを実行しても Docke 「サーバーと接続できな い場合は、 Vi 「 tua 旧 ox が正常に動作していないことが考えられます。 Vi 「 tua 旧 ox を単独 で実行して、登録されている「 defaultJ という仮想マシンを起動してみてください。問 題がある場合には、何か工ラーメッセージが表示されるはすです。 例えば、 2-4-5 のようなエラーメッセージが表示される場合は、仮想化支援機能付きの CPU を使っているにもかかわらす、 OS でそれが無効化されていることが考えられま す。 BIOS 設定画面で「 VT-x 」や「 AMD-V 」などの仮想化支援機能を有効化することで、 この問題は解決します。 59

3. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Pa 1 Docke 「とは何か、なぜ注目されるのか モリー、入出力装置などのハードウェア資源をソフトウェア的に再現 ( 工ミュレーション ) する方法が基本的に使われます。工ミュレーションなどによって作り出されたハードウ工 ア環境を「仮想マシン」と呼びます。ユーザーは、この仮想マシンに、物理マシンと同様 に OS やアプリケーションをインストー丿レして稼働できます。なお、べースとなる物理マ シンで稼働する OS はホスト OS 、仮想マシンで稼働する OS はゲスト OS と呼びます。 ハードウェアレベル仮想化の利点は、ホスト OS と異なるゲスト OS を自由に選択・利 用できることです。また、ホスト環境 ( 物理サーバーやホスト (S) とゲスト環境 ( 仮想 マシンやゲスト (S) の分離度が高く、セキュリティ面での安全性が高いのも利点です。 方、ハードウェアのエミュレーションやゲスト OS の稼働が必要になるため、利用資源量 が多く、性能が出にくいという欠点もあります。ゲスト OS の管理が必要になるため、管 理コストが高くなる傾向になるのも欠点と言えるでしよう。 なお、仮想化技術の流行に伴って、最近のプロセッサは仮想化ソフトの働きを補助する ハードウェア機構 ( 仮想化支援機構 ) を備えています。同機構を利用することで性能を向 上させることは可能です。 OS レベル仮想化 仮想マシンを提供するハードウェアレベル仮想化に対し、 OS レベル仮想化では、 OS の アプリケーション実行環境を分割した「隔離環境」を提供します。隔離環境内では、あた かも OS を自分だけが専有しているかのように外部環境とは独立してアプリケーションを 実行できます。例えば、隔離環境内からは他の隔離環境や隔離環境外で稼働するアプリケ ーションの情報は得られませんし、操作もできません。参照できるファイルシステム範囲 も隔離環境ことに制限されているのが普通です。 隔離環境の名称は OS や提供方式によって複数あります。その ] つが「コンテナ」で、 コンテナを提供する OS レベ丿レ仮想化技術のことを「コンテナ型仮想化技術」と呼ぶこと もあります。 Docke 「では、このコンテナ型仮想化技術を利用しています。 OS レベル仮想化の利点は、仮想マシンのエミュレーションやゲスト OS が不要になる ことで使用資源量が少なく、アプリケーションを高速かっ軽量に稼働できることです。ゲ スト OS を利用しないため、その管理コストも不要です。その半面、ホスト OS と異なる OS を隔離環境内で使用できない制限があります。また、隔離環境の作成方式によっては、 ホスト環境と隔離環境の分離が完全ではないことがあり、その場合にはセキュリティ面で の危険が生じます。 22

4. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

( hap 「 2-04 Windows / OS X に Docke 「をインストールする Windows / OS X に 2-04 Docker をインストールする Docke 「 T00 ox というソフトウェアを利用することで、 Windows や OS X に Docke 「環境を手軽 に構築できます。 Linux カーネルと Docke 「サーバーは、 Docker To box がインストールする仮想 化ソフト「 Vi 「 tua 旧 ox 」上で稼働します。 必要ソフトを一括インストールする Docker T00 ox Windows や OS X に Docke 「環境を構築する場合、どうしても何らかの仮想化ソフト が必要になります 0Linux カーネルや Docke 「サーバーを Windows や OS X では直接稼働 できないからです。 Windows や OS X で動作する仮想化ソフトにはさまざまなものがあ ります。どちらの OS でも動作して無償利用できるものとしては p. 3 1 で紹介した Vi 「 tua 旧 ox があります。 Vi 「 tua 旧 ox のような仮想化ソフトをインストールすれば、その上で稼働する仮想マシ ンに Linux ディストリビューションをインストールし、さらにその Linux ディストリビュ ーションに Docke 「をインストールすることで Docke 「環境を整えられます。環境構築の 手間はそれほどかかりませんから、全部自分でやっても構いません。 仮想化ソフト上で Docke 「を運用する 2-4-1 ゲスト OS の アプリケーション (Docker) ゲスト OS (Linux) 仮想化ソフト (Virtua 旧 ox) Pa ュ 2 ホスト OS の アプリケーション ホスト OS (Windows / OS X など ) ハードウェア 49

5. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Pa 2 様々な環境への Docke 「のインストール 2-4-5 OS で仮想化支援機能が無効化されている場合に表示される Vi 「 tua 旧 ox のエラーメッセージ例 Ⅵ代 ua 旧 ox - 工ラー ビット OPLI を検出できす、起勒できません。 丿Ⅵが使用できません。 6 化ットゲスト OS は 64 ィーー、、ホストマシンの仮想化支揚能 ( V 丁ー x MD ー 仮想マシンを閂じる 続ける 仮想化支援機能がない CPU を使っている場合は、 Vi 「 tua 旧 ox のインストール先フォル ダにある「 VBoxManage 」というコマンドを次のように実行することで、問題を解決で きることがあります。 $ VBoxManage modifyvm 60 -hwvirtex off Enter

6. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Contents はじめに Contents 3 4 Docker とは何か、なぜ注目されるのか ( hap 「 1 -01 注目を集める Docker Docke 「とは何か、なぜ注目されるのか 開発速度向上に役立つ Docker 1 5 急速に普及する Docke 「 Chapter 1 -02 コンテナ技術で軽量な仮想化を実現 20 コンテナ技術で OS レベル仮想化を実現 20 ハードウェアレベル仮想化 21 OS レベル仮想化 22 Linux カーネルの複数機能でコンテナを実現 23 イメージを柔軟に管理できるのが Docke 「の特徴 24 インフラ管理を変える [lmmutable lnfrast 「 ucture 」 ( 不変のインフラ ) 26 Docke 「の適用範囲を拡大するための周辺ツールの整備が進行中 2 / Part 1 様々な環境へのロ ocker のインストール Chapter 2-01 ロ ocke 「の動作に必要なもの Linux カーネルと Docke 「サーバー、 Docke 「クライアントが必要 Linux ディストリビューションの利用 Pa 2 29 0 0 2 3 3 3

7. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Chapter 1 -02 コンテナ技術で軽量な仮想化を実現 ホスト OS と異なるゲスト OS を自由に選択・利用できる。 ホスト環境とゲスト環境の分離度が高く、セキュリティ面では 安全性が高い。 ハードウェアの再現やゲスト OS が必要になるため、利用資源 量が多く、性能が出にくい。 ゲスト OS の管理などが必要で管理コストが高い。 利点 Pa ュ 1 欠点 OS レベル仮想化 アプリケーション実行環境を分割した「隔離環境」をホスト OS の機能 で提供。隔離環境内では、あたかもホスト OS を自分だけが専有してい るかのように外部環境とは独立してアプリケーションを実行できる 隔離環境 隔離環境 アプリケーション アプリケーション ホスト OS アプリケーション ホスト OS で通常のアプリケーションを実行する場合と、ほほ 同じ利用資源量で各隔離環境内のアプリケーションを実行でき るため軽量。 ゲスト OS の管理は不要で管理コストが低い。 ホスト OS と異なる OS を隔離環境内で使用できない。 ホスト環境と隔離環境の分離度が比較的低く、ホスト OS に欠 陥があると安全性が脅かされる恐れがある。 ハードウェアレベル仮想化 ハードウェアレベル仮想化とは、 PC やサーバーのハードウェアを何らかの手段で再現 して、あたかも複数の PC やサーバーが存在しているかのように見せかける技術です。仮 想化ソフト ( あるいは仮想マシンモニター ) と呼ばれるソフトウェアが、プロセッサやメ 利点 21

8. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

INDEX se 「 vice コマンド 152 仮想マシン・・ SSH(Secu 「 e SHeIl) ・ 85 ′ 89 仮想マシンモ二ター STOPSIGNAL 命令 (Docke 「 file) 169 ′ 189 キーバリューストア sudO コマンド 38 ′イ 4 68 ′ / 1 キャッシュレジストリ systemctl コマンド 152 ゲスト OS イ / , 90 , 152 , 163 公式リポジトリ systemd 152 SysV init コンテナ コンテナ旧 コンテナ型仮想化技術・ ta 「アーカイブ 1 OO ′ 102 コンテナ間通信 TLS ・ 193 ′ 194 198 コンテナ名・ 32 , 36 Ubuntu 33 , 3 / Ubuntu Se 「 ve 「・ attach ・・ 69 ′ 139 UN Ⅸドメインソケット・・ / 0 , 15 乙 208 サービス名 (Docke 「 Compose) 208 , 209 build 69 , 100 152 シグナル・ 63 , 131 ′凵 4 145 , 169 , 189 CJpsta 「 t ・ commit 69 ′ 84 88 , 98 USER 命令 (Docke 「 file) ・ 169 ′ 190 自己署名証明書 194 69 ′凵 9 CP Vag 「 ant ・ 15 証明書 1 9 イ 69 , 1 16 C 「 eate VBoxManage コマンド 60 シェル・・ 6 乙 82 daemon 68 ′ 154 vfs ( ストレージドライバ ) ・ 159 , 160 , 161 ストレージドライバ 159 , 160 , 162 diff 69 , 150 Vi 「 tua 旧 ox 31 ′イ 9 ストレージバックエンド・・ 6 乙 159 , 160 69 events volumes 命令 (Docke 「 Compose) 69 ′ 1 38 exec 21 1 ′ 213 69 , 151 , 1 ″ expo 「 t VOLUMES 設定 129 ダイレクト方式 (Device Mappe 「 ) 160 histO 「 y 69 ′ 96 , 173 VOLUME 命令 (Docke 「 file) ・ 169 , 190 タグ名 / 6 / 1 14 69 ′ / 0 , / 6 , 91 lmages ・ VT-x 59 デーモン 68 impo 「 t 69 , 104 105 ′ 174 デブロイメント infO ・ 69 , 165 中間イメージ 92 , 96 / 101 69 , 94 1 22 , 125 ′ 129 , 135 inspect 69 , 145 69 / 1 0 イ / 0 , 10 / 70 ′ 10 / 70 ′ 141 / 0 , 140 / 0 , 134 / 0 , / 3 , 126 ′ 129 , 132 / 切 108 / 0 ′ 1 10 / 0 ′ 133 / 0 , 14 / / 0 , / 6 , 93 70, 75 ′ 1 31 80 , 82 , 108 , 1 1 6 , 123 , 124 128 / 0 , 102 save ・ / 0 , / 乙 1 1 2 ′ 1 15 sea 「 Ch 70, 74 14 / sta 「 t ・・ / 0 ′ 1 3 / stats ・ / 0 ′ 80 ′ 14 イ stop / 0 , 92 tag / 切 1 イ 2 tO Q / 0 ′ 140 unpause ・・ 201 / 0 ′ 16 イ 「 Slon ・ 201 / 0 ′ 146 wait ・ 20 ′ 22 201 リーンスタートアップ・ 196 リボジトリ・・ / 6 20 , 21 , 22 リボジトリ名 / 8 , 1 1 3 リンク・ 201 , 202 1 2 , 22 ′ 62 ループデバイス方式 (Device Mappe 「 ) 63 160 ′ 162 22 レジストリ 1 3 , 24 65 / 3 ′ / 4 1 33 ら 200 Docker コマンドのサブコマンド wget コマンド 40 ′ 4 / whe グループ 28 , 208 WO 「 dP 「 ess ・・ 名前解決用設定ファイル・ WO 日 KD 旧命令 (Docke 「 file) 169 ′ 191 名前空間 YAML 形式 208 認証局 yum コマンド・ zfs( ストレージドライバ ) 159 ′ 160 , 162 160, 1 61 , 162 ZFS ・ 201 ZooKeepe 「・・ 1 58 Zsh load login logout pause ・・ po 「 t ハードウェアレベル仮想化 20 , 21 バックグラウンド ( 実行 ) pull 68 , / 9 , 88 , 124 215 push 汎用ファイルシステム・ 160 「 ename ビルド変数・ 1 8 イ 「 esta 「 t 24 65 ブートストラッピング・ 76 ′ 92 フォアグラウンド ( 実行 ) 79 ′ 88 ′ 124 , 214 「 m 96 不変のインフラ 26 ′ 2 / 「 un / 6 プライベートリボジトリ 107, 192 1 5 プライベートレジストリ・ 93 , 1 1 2 , 192 1 8 プロセス・ 23 , 62 ′ 63 プロビジョニング 別名 202 ′ 212 仮想化 20 ボート転送 79 ′ 1 26 ′ 134 200 仮想化支援機構 22 , 59 ホスト OS ・ 20 ′ 22 , 62 , 63 仮想化ソフト 12 ′ 2 しイ 9 仮想ィーサネットインタフェース 200 ′ 201 仮想ネットワ - クドライバ 23 ′ 24 マルチホストネットワ - ク機能 仮想ブリッジ 200 , 201 マルチホスト連携 203 23 ′ 62 ′ 63 1 9 イ ア 工 ウ ント 歴】ヨフ 履】シソ 成 . 一ス Q 窈名トソ ジジジジスン メメメメ一一 イイイイオオ 223

9. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

( hap ′ 1 -01 注目を集める Docke 「 れ Linux カーネル上に「 Docke 「エンジン」と呼ばれる仮想化基盤を構築でき、その上に アプリケーション実行環境を構築・稼働できる 2. 設定ファイルに基いて、 Docke 「エンジンで稼働可能なアプリケーション実行環境を素 早く、自動的に構築できる 3. アプリケーション実行環境の構成に必要なイメージを配布する「 Docker Hub 」を始 めとするレジストリサービスを利用できる これらの特徴によって、アプリケーション実行環境を手軽に構築したり、構築したアプ リケーション実行環境を異なる Linux 環境で共通的に稼働させたりできるのが、 Docke 「 を利用する利点です。 Pa ュ 1 1-1-1 Docke 「の主な 3 つの特徴 ① Linux カーネル上に「 Docke 「エンジン」と呼ばれる仮想化基盤を構築でき、 その上にアプリケーション実行環境を構築・稼働できる アプリケーション アプリケーション 実行環境 実行環境 Docke 「エンジン 仮想化ソフト Linux カーネル ホスト OS 相当 アプリケーション アプリケーション 実行環境 実行環境 Docke 「エンジン Docke 「エンジン Linux カーネル Linux カーネル Docke 「で構築したアプリケーション実行環境は、 . Docke 「エンジンがあれば、異なる環境でもそのまま稼働できる

10. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Docke 「とは何か、なぜ注目されるのか を区分するために「 ch 「 00t 」、通信データを適切に配分するために「 Netfilter 」や「仮想 ネットワークドライバ」などの機能を使っています。 Docke 「は、こうしたカーネル機能を活用して、コンテナやコンテナ内で稼働させるソ フトウェア環境の実行イメージなどを管理します。 なお、 Linux カーネルのコンテナ関連機能は、 2006 年頃から実装が始まり、 201 3 年 頃に一通りの機能が揃いました。コンテナ技術の有用性から、これらの機能は、さまざま なソフトウェアで利用されてきました。代表的なソフトウェアの ] つが、「 LXC 」 (Linux Container) というコンテナ管理ソフトです。 Docke 「は当初、 LXC を使ってコンテナを 管理していましたが、 20 ] 4 年 3 月にリリースされたバージョン O. 9 以降では LXC は不 要になり、既定設定では独自のライブラリ (libcontainer) を介して、コンテナ関連のカ ーネ丿レ機能を利用します。 イメージを柔軟に管理できるのがロ ocke 「の特徴 コンテナ型仮想化やそれに類似する技術は、決して目新しいものではありません。例え ば、 Linux と同様のフリーの IJNIX 系 OS である F 「 eeBSD では、「 jaiIJ と呼ばれるコンテ ナ作成機能が 2000 年から利用できますし、 Linux においても 200 ] 年には「 Vi 「 tuozzo 」 と呼ばれる有償のコンテナ型仮想化ソフトが利用できました。前述の LXC も、最初のバー ジョンがリリースされたのは 2008 年のことです。 これに対して Docke 「の最初のバージョンがリリースされたのは 20 ] 3 年です。同じコ ンテナ型仮想化を実現する他のソフトが複数存在する中、 Docke 「の何が注目を集めたの でしようか。 Docke 「が注目された理由の ] つに、コンテナの設定やコンテナで稼働するソフトウ工 ア群をまとめたテンプレートである「イメージ」を柔軟に管理できることが挙げられるで しよう。 Docke 「のイメージ管理の特徴は主に次の 2 つです。 ①イメージを階層的に管理・利用できる ②「 Docke 「 Hub 」のようなレジストリサービスにイメージ群を登録して再利用できる Docke 「のイメージ管理の概要を 1-2-3 に図示しました。 24 Pa 1