>> [音楽再生]
DAVIDマラン：すべての権利。
今後のためにありがとうございました。
これはデッカー、A上のCS50セミナーです 自分自身とCS50を、私たちの技術
今いくつかの時間のために使用し始めています。
だから、私の名前はデビッド・マラン、私であります ハーバード大学の紹介を教えます
コンピュータサイエンスへ。
かなりの年のために、 私たちは学生を与えてきました
ダウンロード可能なクライアント側 仮想マシン
その上、彼らは彼らの問題のセットを行います。
我々は今移行したこと クラウド環境に
それは実際にこの技術を使用しています すべてCS50よう、デッカーと呼ばれます
学生は今持っている彼らの 自分デッカーコンテナ
あなたはすぐにについてのすべてを聞くこと。
>> また、CS50のサーバー上 長年にわたり側クラスタ、
私たちは、Amazonのクラウドサーバーを使用していました。
私たちは、個人を実行していました 仮想マシン。
それも、私たちはへの移行を始めました デッカーコンテナと呼ばれるこれらの事
そう、私たちのすべてのアプリケーションが今していること 完全に互いに分離。
だから、それ以上のために、私ができるようにします 私たちの友人、ニコと真野を紹介し、
デッカー自体から。
NICOLA KABAR：ありがとう、デビッド。
みなさん、こんにちは。
私の名前はニコであり、これは真野です。
我々は、ドッカーからです。
我々はabout--話をすることになるだろう デッカーにあなたたちにイントロを与え、
うまくいけば、終わりに向かって あなたが実現することができます。この話の
どのくらいあなたがする医者を使用することができます アプリケーション開発を​​シュウ酸
展開。
>> だから、私たちは本当のオフを開始するつもりです いくつかの背景情報を迅速に。
デッカーはすべてに約あるものを説明してください。
それがどのように動作しますか？
それはどのように設計されて？
私はいくつかのデモをやっているでしょう。
そして真野があることを行っています 記述どのようにドッカーを使用することができます
そしてあなたの具体的な手順を与えます あなたはどのように始めることができます。
>> 君たちが保持できる場合、私は理解するであろう 終わりに向かって、あなたの質問のためにオフにします。
そうすれば、私はそれらに対処することがあります プレゼンテーション全体に質問。
だから我々はいくつかの時間を残しておきます 質問のための終わりに向かって。
>> 持っている人は、だから実際に素早く 実際にこれまでデッカーに取り組んで、
以下のようにそれで遊ん？
驚くばかり。
クール。
グレート。
だから、私は開始するつもりです いくつかの歴史を持ちます。
だから、戻って90年代でと 基本的には2000年代初頭、
ウェブ開発者、アプリ開発者として、 彼らはアプリケーションをデプロイするために行ったとき
それは金属を露出するために結ばれました。
それは、一つのサーバでした。
それは、一つのアプリケーションでした。
>> 伝統的に、例えば、 LAMPスタックのようになり、
あなたが実際に持っていたところ リソースのプールを持ち出します。
CPU、メモリ、ディスク、ネットワーク、インストール その上にオペレーティングシステム。
あなたが何かを提供している場合、もし あなたが実際にWebサーバーを抱えています、
あなたのようなものが必要 Apacheはそれを提供します。
>> あなたのアプリケーションの場合 データベース、バックハンドが必要であり、
あなたが何かをインストールします MySQLのような、というように。
そして、あなたは実行時間を必要とする場合は、PHPS PHP、Pythonの仕事がありました。
そして、私たちは実際に持っていました ためにこれらのステップを取ります
アプリケーションを起動し稼働させるために。
>> あなたはより多くの計算能力を必要に応じて、 基本的に男あなたのオプスをコールしなければなりませんでした
またはギャル行くと新しいをラックに ハードウェアの一部は、それを接続し、
あなたはそれらを繰り返す必要が プロセス、何度も何度も。
そのため、このプロセスがありました 比較的高価。
間違いなく非常に遅かったです。
>> それは非効率的でした。
そして、多くのケースで、あなたの ハードウェアが十分に活用されました。
だから、90年代後半と2000年代初頭には、 ハードウェアの仮想化は出会いました。
そして、あなたはここで見ることができるように 絵、基本的に彼らが何をしましたか
のプールを抽象化されます 無料のハードウェアリソース
および種類のものを務めました 上位層に、
この場合、ゲストは、オペレーティング・システム。
>> との全体的なアイデア 仮想マシンが出会いました
それは本当にクラウドを助けました 我々が今日それを知っているような計算。
だから、何を意味するのか、あなたはあります 複数のVMを実行することができ、これ
複数のスタックを意味し、複数の 同じ物理マシン上のアプリケーション。
>> これは間違いを手伝ってくれました アプリケーション展開の速さ。
確かに費用と。
あなたが行くと費やす必要はありません エネルギー、時間、およびラックにリソース
複数のサーバが複数の計算に取得します。
そして、実際に持って来るの速度 これらのリソースのアップははるかに高速です。
グレート。
>> だから我々は右、世界の飢餓を解決しましたか？
いいえ、別に。
それはだように、仮想化は同じくらい 実際に問題を解決するため、助け、
それが実際に導入されました 課題がたくさん。
間違いなくハイパーバイザ 複雑の多くを導入し、
それらの基礎となるの取り扱い リソースのプール。
>> これは、その前の意味で重いです あなたは、単一のオペレーティング・システムを持っていました
ディスク上に3つ、4ギグのようなものです。
さて、あなたは10のマシンを持っている場合 単一のハードウェア上で
あなたはそれを乗算する必要があります マシンの数によって。
それは間違いなくより多くのです 意味で高価なあなたまだ
ライセンスを取得する必要があります 仮想化技術
それがオープンソースではない場合。
>> しかし、のはすべて取るわけにはいきません 仮想化からの信用。
何が起こったことはありますですので スタックとソフトウェアの多くの多く
有効になっていました技術 あなたが得ることができたことにより、どのくらいの速
クラウドブームとリソースへ。
>> だから、今日、単一のアプリケーションやサービス缶 以下のランタイムのいずれかを使用すること
またはデータベース。
PHP、Pythonのは、MySQL、Redisの、その他もろもろ。
だから、多くの複雑さがこれにあります 実際に育てるためのスタック数
単一のサービス。
そして、それに伴って、あなたはたくさんあり​​ました 基盤となる資源やインフラストラクチャ
導入と基本的にテストするタイプ これらのアプリケーションの生産にかかります
あなたが開発していること。
>> あなたのチームが持っている、特にとして、 それらのアプリケーションに取り組んで成長し、
がたくさんあり​​ます 複雑さと課題
そのことを確実にするためにもたらされました cycle--基本的にアプリケーション
開発サイクルは、あります 実際に成功しました。
だから、実際にそのアプリケーション あなたのローカルVM上でローカルに動作しています
同僚ことを保証するものではありません 同じ結果を期待しようとしています。
>> また、運用チームがあるとき あなたが持っているもの取るに関与
生産でそれを展開 スケールは、また保証はありません
それは実際に起こるだろうということ。
だから、これは実際に私たちを残し 、疑問符の多くをbig--
課題の多くは、実際に 同様に、バック日で直面しています。
そして、それは私たちのことを思い出し 海運業界。
>> だから、海運業界 商品の多くを持っていました、
あなたは左側に見ることができるように。
そして、右側の、 、の多くは、基本的にあります
これらの商品を出荷する方法。
そして、何がカップルとして起こります 人々が一緒に来たと言いました、
私たちはどのように標準化する必要があります 私たちは実際にそれらの商品を出荷します。
そして、ブーム、あなたが持っています インターモーダル輸送用コンテナ。
>> そこで、彼らはほとんどに合意 コンテナの一般的なサイズ。
それらを処理する方法。
正確なあなたが必要とする方法 それらをロードし、それらをアンロードします。
したがって、その真 海運業を助けました。
今、90％以上の焦点を輸送 グローバルこれらのコンテナを使用しています。
そして、それは間違いなく減少します 費用だけでなく、
出荷による損傷。
>> だから我々は、同じモデルを取り、我々 2アプリの開発ソフトウェアを適用
意味での建築、 そのコンテナ化
1レベルの仮想化を取り上げました。
だからではなく、それを行うの ハードウェアレベルで、
それは、動作のよりとなりました システムレベルの仮想化。
>> そして、私たちはそれぞれを提供することによって、それを行います 独自の軽量でアプリケーション、
分離された、実行可能な、と 携帯型、最も重要
実際にパッケージ化する方法 それを実行する必要があるすべてのもの。
どこでもそれは実行することができます。
だから、関係なく、あなたはそれを実行している場合 地元のdev環境、本番
環境、ステージングやテスト。
どんなに根底にあるもの インフラがあり、
あなたは、機能の作業のアプリを持っていました。
>> だから、基本的には正確に何です コンテナは、この問題に行います。
彼らはそれをすることによって対処します そのような方法でそれをパッケージ
それが展開されていますことを保証できること 成功し、それが住んでいるに関係なく。
あなたが行っているのであれば 以下のような、ボブはそれはまだ大丈夫です。
あなたは私が言っているものと混同している場合は、 私はその上で起草するつもりです。
>> それでは、どのようデッカー自体はありません この写真に収まりますか？
だから、デッカーはオープンプラットフォームであります 簡単に、簡単に強調するために、
船を構築するために、実行して、 軽量ポータブル自己
どこにでも十分なアプリのコンテナ。
だから、あなたがこのことから何かを取る場合 話は、以下をご利用ください。
>> あなたのアプリを実行している場合 ローカルに、あなたはそれを開発
デッカー・プラットフォームを使用して、期待します それが正常に展開されます。
どんなに何ですか 基盤となるインフラストラクチャ。
ですから、ドッカーを持っている場合 コンテナとそれが働いて、その後、
限りデッカーがありますように 他side--のエンジン
あなたの操作インフラストラクチャの場合 それかどうか、任意のクラウドを使用しています
AWS、またはGoogleの、またはMicrosoftがあり、 またはパブリッククラウドのいずれか、
または、独自のクラウド、または開いているスタック クラウド、またはローカル環境。
>> あなたがエンジンを持っている場合 実行していることを意味
それがあることになるだろう 首尾よくそこに展開しました。
それが実行されているために起こっています 全く同じ行動
あなたがそれを設計のように。
我々はat--見ればだから私は行きますよ 実際に何を通過します
デッカーの主な構成要素です。
>> だからエンジンはデッカーの中核です。
それは脳のです。
それは、建物、出荷を調整し、 展開および管理
コンテナそのもの。
私はエンジンが何をするかを掘り下げましょう 秒で詳細インチ
基本的には、医師が建設されたため、 クライアント・サーバ・アーキテクチャの周りに、
そうと対話するために、 エンジンは、あなたがクライアントのいくつかの並べ替えを必要とします。
>> 画像はテンプレートであります そこから構築されているコンテナ。
だから画像は基本的に 単に静的ファイル。
テンプレートとコンテナ 何実際にです
実行時に実行しています あなたのアプリケーションを提供しています
またはデータで何かをすること。
>> レジストリは、の問題として対処されます どのように実際にイメージを配布。
だから、イメージを共有する必要がある場合 あなたの同僚に作業したこと
またはOPSチームに、あなた レジストリを使用してそれを使用しています。
あなたは、オープンソースをダウンロードすることができます デッカーがオンに働いたこと、それのバージョン
そしてオープンソース。
>> それとも、デッカーのヘルプを使用することができ、 これはクラウド版です
押して、そこに画像を引き出します。
それは巨大なものです。
巨大がありますので デッカーの周りの生態系は、それはです
本当に重くハブを利用します。
>> だからここに要約すると、これがどのように ミニマリストデッカーワークフロークライアント。
あなたには、ホストとの対話 この場合は、それがドッカーデーモンです。
それはエンジンと同じことです。
あなたのようなコマンドを実行します ドッキングウィンドウは、プル、ランを構築。
そして、エンジン自体は行きます それらのことを行います。
>> だから、どちらかそれがと相互作用 これらの画像を引くために、レジストリ
や画像の層。
あなたが展開する場合、実行するかどうか コンテナは、それらを殺す、それらを投げます、
その他もろもろ。
これはワークフローをまとめたもの これらのコンポーネントのすべての。
>> ですから、すべての取る場合 それ自体でコンポーネント。
だからエンジンは、それだけでデーモンです。
それは一種のサポートするためにそれを再生します Linux上でそれそれがないので、
特定のLinuxカーネルの機能を必要とします。
しかし、Windowsが動作しています 同じことをやって上。
これは、サポートされることになっています Windows Server 2016によります。
>> とそこで、再び、責任 エンジンはであること、または、画像を構築することです。
デッカーから画像をプル ハブ、または独自のレジストリ。
あなたはこれらのイメージで行われている場合 または、あなたは、新しい画像を作成します
レジストリにそれらを押し戻すことができます 他のチームに配布します。
>> そして、それをローカルに含むようにしよう コンテナのライフサイクルを管理
ローカル。
これは、HTTPのREST APIを中心に構築されています。
だから、技術的に次のことができます 独自のクライアントを書きます
限り、それは非常にある、HTTPを使用していますように エンジンに話をするための標準的なメカニズム
その他のサービスの多く。
そして、あなたはから見ることができます ここにかかわらず
何インフラの 限り、あなたはすべてのcan--として、あります
あなたが動作している必要があります システム、Linuxの特に。
>> そして、あなたはドッカーエンジンをインストールすることができます その上に、それが実行しています
それは、基本的には、編成します これらすべてのアプリ1、2、
そして、3は実際のコンテナです。
だから、エンジンです。
私はので、先に述べたように あなたは、エンジンと対話する必要があります
クライアントがあります。
>> しかし、実際には、インストール時に それにドッキングウィンドウ、発送します。
だから、それがインストールされます、 それは、単一のバイナリです。
そして、あなたは市内通話を行うことができます あなたデッカーエンジンへ。
リモートエンジンまたはリモート呼び出し。
それはのように、HTTPを使用しています 私は前に述べました。
呼ばれるGUIクライアントがあります デッカーからKitematic。
間違いがあります 他の多くの人々
の多くを構築している人 基本的には実施のGUI
いくつかのHTTPはエンジンに話を呼び出します。
>> ただ、いくつかのサンプルコマンド。
あなたはデッカーのバージョンを行う場合は、希望 あなたのクライアントのバージョンを表示だけでなく、
サーバのバージョン。
あなたはデッカー情報を行う場合、それはなります あなたのすべての情報を伝えます
実行されているどのように多くのコンテナについて または作成した、あなたが持っているどのように多くの画像、
などのように。
>> ここで私は次の中で、持っています 最後の箱、私はドクターの実行を持っています。
だから、私は実際によ方法です コンテナを作成します。
そして、私はHello Worldのをエコーするためにそれを与えています 第2およびその他もろもろのために眠ります。
そして、あなたが見ることができます 結果。だから、現在進行中です。
そして、Linuxのpsのと同様に、あなたが見ることができます この場合、すべてのプロセスと、
実行中のすべてのコンテナ。
この1の参照バック 私が作成したコンテナ。
>> そのように、これは、非常に重要です 以下のような、それは少し混乱することができます。
だから画像は読み取り専用です ファイルのコレクション、右？
彼らは私たちのコンテナのベースとなるものです。
しかし、彼らは読み取り専用です。
だから、基本イメージから始めます。
それはそう、OSのような模倣する傾向があります Ubuntuの、CentOSの、その他もろもろのベースイメージ。
そして、あなたはの上に構築を開始します 占めるようになること、特定の層、
エンド画像、ここで最終的な結果。
>> そして、それらの層の各々 親イメージを持っている必要があります
それはときに、それを参照すること 実際に作成したいと考えています。
彼らはある意味で、不変です その彼らが読み取り専用だから、
あなたが実際にすることはできません それらへの変更を行います。
あなたが作成するためにそれらを使用することができます 画像からコンテナ、どの
すべての後続の呼び出します その下に、必要なイメージ。
>> あなたは、変更を行うことができます 別の層に、
それは私がよ書き換え層です 第二に話。
しかし、これらの層の各々 変更されることはありません。
基本的には画像が何かを使用します UFS、ユニオンファイルシステムと呼ばれます。
そして、別のストレージがあります この技術を活用したバックエンド。
そして、何それが意味することということです 個別のファイルシステムを結集
彼らは1のように見えるようにします。
>> だから、実際にすることができますから アプリケーションの観点、
あなたはそのショービューの上部を持っています すべての異なるファイルシステムが必要とされます
そのアプリケーションを実行するため。
しかし、彼らはこの上に、実際にしています、 それらは別々の場所に実際にいます
とにより利用されています 同様に他の容器。
>> だから、あなたがいることをここに見ることができるように 我々はデーモンイメージで起動した場合
その後、ベースイメージ、およびなど 我々は中に入って、[追加しますか？ emacsの？]
し、その後、それはまた別の層です。
そして、Apacheに追加します。
それは別の層です。
そして、我々が過ごします それからコンテナ。
これらの画像は、それぞれ、 これらの層のそれぞれ、
別個のものであるとすることができます 他の容器に再利用。
>> あなたが自分自身の容器を見ると、 彼らは、何らかの形で、VMのように似ています
しかし、同じ時間に処理されていません。
だから、彼らが持っていない、技術的には、 それらの下に完全なオペレーティングシステム。
彼らは、単一のカーネルを使用 ホストオペレーティングシステム。
そして、彼らはその上に構築します。
彼らはどのように見えるかに模倣します。
彼らは、ルート・ファイルを模倣します オペレーティングシステムのシステム。
しかし、彼らは実際に複製されていません。
>> だから、代わりに不変の層を有するの、 コンテナである最後の層、
それ自体は、それが読み書き層です。
それはまた、プロセスが実行されます アプリケーションの。
そして、それは下の層に依存します。
すべてのコンテナです イメージから作成。
そして、そのイメージは、単一する​​ことができます 層または多層の画像。
>> そして、私はここで注意したいです デッカーは重く使用していること、
またはコピー・オン・ライト・メカニズムに基づいています。
だから、そうでない場合は、実際に、その コンテナに変更を加えます、
それは余分なスペースを取ることはないだろう。
だから、基本的にはどのようにあなたです コピー・オン・ライトをまとめます。
これは間違いなくスピードアップするために起こっています コンテナの起動時間。
ので、あなたが行っていない場合 コンテナへの変更、
それはすでにそこにあるものを利用です。
>> だから、それは実際にどのように動作しますか。
それの一部は、それを今、のようなものです 少なくとも二つの重要なカーネルを利用
特徴。
そして、それは基本的に何であります 分離のレベルを作成
コンテナ自身のため。
これらの機能は、 名前空間とのcgroup。
だから、名前空間はする方法です 分離されたリソースを作成、
コンテナ自体内になるように、 あなただけが特定のリソースを参照してくださいすることができます。
このようなネットワークインターフェースとして または特定のユーザーまたはその他もろもろ。
>> そして、それらにのみ表示だけです コンテナ内でアクセス可能。
反対側の制限にのcgroup どのようにこれらのリソースを使用しています。
CPU、メモリ、およびディスク。
あなたが行くことができたとき、私 それらは実際にある意味
by--開発された機能 彼らは、Linuxカーネルの一部です。
そこで、彼らは再発明されていません またはデッカーによって再作成。
ドッキングウィンドウは、それらを使用しています。
>> どのような医師は本当にやりました ここでは実際にあります
作成画策 各コンテナの名前空間
そして、それはだようにのcgroupを作成します コンテナを作成するために途方もなく簡単に
これらの機能を使用して。
もちろん、私が説明したように、以前、連合 システムファイル、本当にコピー・オン・ライト
スピードとディスクを支援 コンテナの利用。
>> そして、あなたはあなたを取得し、一度 デッカーの周りの手、
あなたはそれがあるどのくらいの速を参照しようとしています 実際にコンテナと涙をスピンアップ
それらダウン。
それで、あなたはどのようにすることができます、頼むかもしれない場合 あなたが実際に画像を構築しますか？
私たちは、作成プロセスによってイメージを作成 コンテナとなっ変更、改変
それら、それらをコミット イメージになってきて中に。
>> だから、鶏だし ここでは卵の参照、
すべてのコンテナが来るので、 画像や画像から来ます
コミットされた容器から、 ほとんどの部分。
3つのオプションがあります。 画像を作成することができます。
私が説明するつもりです 最初と最後。
あなたがいずれかを行うことができ、手動で コンテナを移動して実行
それらの変更を行い、 あなたは、任意の仮想マシン上で行うのと同じよう
または任意のオペレーティングシステムは、このような 新しいバイナリをインストールするなど、
ファイルシステム、およびその他もろもろを加えます。
>> そして、あなたはのように、終了します あなたはそこに見ることができます。
私は、コンテナを終了しています。
そして私は、ドッカーがコミットやっています。
そして、私はそれをコミットしています。
あなたはここでその数を見ることができます ただ、UUID、または最初の12であります
UUIDのビット。
またはUUIDのバイト。
そして私は私のイメージ、それを呼んでいます。
だから今デッカーはの世話をします 私はそれをしなかったすべてのものを記録します
そして、新しいを作成します それに基づいて画像を表示します。
>> 私は、tarボールについて話をするつもりはありません しかし、あなたはシングルを得ることができる方法があります、
単一を作成するか、単一を作ります tarballを使用して、レイヤ画像。
私はこのことについて話をするつもりです そして主に今日使用されているもの、
Dockerfileです。
どちらが技術的には最初のものです デッカー自体によって自動化されたステップ。
だからDockerfilesは、あなたがしているものです GitHubのレポの多くに見に行きます
今日。
それは基本的にはちょうど 記述したテキストフ​​ァイル
正確にどのようにイメージを構築することができます。
>> そしてライン毎に、それが実際に作成され コンテナは、その行を実行し、
そのコンテナをコミット 新しいイメージ、そしてあなたは、基本的には、
後続のすべての操作のためにそれを使用します あなたは、最後の画像が表示されるまで。
基本的にはどちらが ここでの最終目標、終了。
そして、あなたはあなたの後exec--後 これは、あなたのDockerfileを書きます
純粋なテキストである、あなたはドッカーを行います 構築し、イメージの名前。
>> そして、あなたはそれがあることを指します Dockerfileはです。
そして、あなたは私のイメージを見ることを期待することができます ローカルに持っているイメージとして。
だから、単に視覚的です 何が起こった例。
あなたはベースイメージで開始します。
あなたは、そのコンテナの中にそれを実行します 基本画像自体は変更されません。
しかし、その代わりに作成します その上に層を書き換えます
あなたが変更を行う場合は、 これであなたは、コミット
あなたがされるまで処理を繰り返します あなたの最終的な画像を取得。
>> そして、そうすることによって、他のすべてのビルド プロセスは同じ層を使用することができます
基本的にsame-- デッカーは、これらの層をキャッシュします。
私はまったく同じことをやっている場合ように、 プロセスが、その代わりにPHPをインストールします、
私はPythonをインストールしています。
これは、ApacheとUbuntuを使用するようになるだろう。
そのようにあなたはあなたのディスクを利用しています。
これは、キャッシュを利用しています そこに利用可能な画像。
>> 最後の部分は、レジストリであり、これは あなたのイメージを配布する方法です。
そして、私が先に述べたように、 それのクラウド版があり、
これデッカーハブです。
あなたが行くと探索することができます 基本的に、多くの
その公共のSAS製品です あなたはまだプライベート画像を持つことができ、
しかし、公共の画像がたくさんあり​​ます。
それはあなたのことができ、実際には無制限です そこに無制限の公共の画像を押してください。
そして、これはどのようにすることができますです あなたのチームと協力しています。
>> あなただけのレポでそれらを指すことができます そして、彼らはそれか、あなたのイメージをダウンロードすることができます
そして彼らはそれをダウンロードすることができます。
講演でそう十分。
誰が実際に素早くいくつかのデモを見たいですか？
大丈夫。
だからここに私が持っています。
あなたたちは私の画面を参照してくださいCaの？
大丈夫。
>> だから私は、ドッカーがここで実行されているので、私 これはバージョンですit's--確認することができます
実行しているデッカーの。
デッカー情報を行うことができます。
何に関するすべての情報を確認してください 彼らが持っている画像などのように。
ドッキングウィンドウPSは、実行されているものはありません。
それらを連結。
>> だから私がしたい最初の事はショーです あなたどのように簡単にコンテナを実行することができます。
だから、美しさについて 医師は実際にそれならば、実行します
ローカルイメージを見つけられません、 デフォルトではドクターハブ​​に話します
そしてそこにそれを見つけようとします そしてあなたのためにそれをダウンロードします。
だから、ドッカーを含み 当然、コマンドを引きます。
>> だから私はデッカーの実行を行う場合は、ハローワールド。
だから、最初にそれが起こっています それを見つけるためにしようとします。
そうでなければ、あなたはここで見ることができるように、 それがローカルにそれを見つけることができませんでした。
今のところは、ちょうど2つの層を引っ張っ それはそのイメージを作り、私はそれを実行しました。
こんにちは、世界はただ、基本的です あなたがやっていることを出力します。
だから、これは最も簡単です、 1最も簡単な例。
だから、実際に私は走りました コンテナが実際に素早く終了しました。
>> 私はrun--と方法によって、場合する場合 私は、あなたが知っているだけのように、時間にしたいです
これはにかかる時間です 実際にスピンアップし、それが含まれています。
私たちは、ミリ秒単位でそれを測定しています。
だから、どのくらいこの缶を見ることができます 実際にテストしていないだけで、あなたを助け、
しかし、またしても展開。
だから、その上の簡単なメモです。
私は次の事 何をするつもりは、実際にあります
私はすでに用意しましたイメージを実行します。
だからランをドッカー。
-dは、伝えるためだけのフラグです それがバックグラウンドで実行します。
そして、-pは、特定のポートを割り当てます。
そのため、デフォルトでは、 コンテナは、分離されています
あなたは正確に指定する必要があります それはどのようにそれらにアクセスすることができます。
そして、この場合には、私はドッカーを言っています ホスト上のランダムなポートをマッピングします
内の指定されたポートへ コンテナ自体。
そして、それはどこimage--基本的です うまくいけば、これは正しいものです。
>> だから、並列ダウンロードを実行し、各 これらの層のあなたはここで見ることができるように。
これらは形成する層であります 私が構築されたエンド・イメージ。
なお、第2を取るために起こっています。
出来上がり。
>> 私はドッカーpsを行う場合はだから今、私がすべき 実行されているものを参照してください。
私は、ID、画像が表示されるはずです このことは、それは、オフに基づきました
および実行されたコマンド。
そして、それがアクセスする方法 基本的にはそのポートにアクセスしてください。
だから私はこのto--行くつもりです 私はAWS上でそれを実行しているされています。
私は32769に行くつもりです。
おっとっと。
そしてここで私達は行きます。
>> だから、これはただ実際には 示しているWebサービス
それから提供されていた容器。
だから、そのことを見ることができます コンテナa9fからです。
そして、ここではこれがあります コンテナの名前。
だからみんなはどのように迅速に見ることができます 実際にだけではなく、引くことだっただけでなく、
このコンテナを展開します。
>> さて次のステップはにあります Dockerfilesに見えます
そして、どのように我々は、実際にすることができます 新しいイメージを構築します。
私はクローンを取りに行くつもりだ、A 以前に基づいて、試料のDockerfile
図、ApacheとPHPに1。
うまくいけば、私は自分のレポを覚えています。
>> だから私は今、私のリポジトリを持っています。
そして、あなたは見に行っています この実際にたくさん。
私は木をインストールしていません。
>> したがって、基本的に、あなたはどのように参照するつもりです 周りのあなたのソースコードのドキュメント
それ、その後Dockerfileに どのように実際にそれをパッケージ化します。
だから、ただのサンプルPHPの それはハローCS50をエコーし​​ます。
>> だから私はそれを実行したい場合は、 私はドッカービルドを行います。
私が最初にそれを構築する必要があります。
私はそれをdemo_cs50名前つもりです。
そして、あなたもそれにタグを必要とします。
それでは、V1ドットそれを呼び出してみましょう。
私は先に述べたように、 今日は何をやっています
私が使用することを行くためにドッカーを言っているされています that--実際に、申し訳ありませんが、私の悪いです。
私たちは見てませんでした Dockerfile自体で。
だからここでの唯一のものがあります 同様に、Readmeファイルのindex.php
そして、Dockerfile。
>> だから、あなたが見てみる場合 Dockerfileので、それはです
ものと非常に類似し 私は先に説明しました。
それはちょうどの束です デッカーが実行手順
コンテナを作成し、解体することによって そして [？画像の中に？]それらを数えます。
>> そして、基本的に次のことができます それはhere-- [聞こえません] see--
これは地元のレポからです。
それは行くとグラブのindex.phpになるだろう。
だから、そのソースコードのみです 実際にあなたのアプリケーションの一部です。
すべてこれは基本的に オペレーティングシステムの配管、
右のパッケージを取得し、 アパッチ、とPHP、およびその他もろもろ。
しかし、これは実際にはindex.phpを取っています コンテナにそれをコミットし、
イメージに。
>> だから、先に行くと、実行した場合 次の操作を実行して、コマンド、
それは、実際にgoing--です これは少し時間がかかる場合があります。
うまくいけば、それはあまりにも時間がかかりません。
だから、手順を参照してくださいすることができます。
そして、私は行くことをお勧め 帰って、今日、それを試してみてください。
そして真野は説明します どのように正確にあなたがそれを行います。
しかし、それは正確に確認することは本当に素晴らしいことです 何が背後で起こっています。
しかし、それはビルドするために途方もなく簡単です イメージとドッカーを使用して展開します。
>> それは少しを取っています 私は予想よりも長いです。
>> それでは、you--が冷えるときに何が起こるか見てみましょう。
だから、それらの各ステップを見ることができるように Dockerfileの行を表します。
そして、それはそれことをここに示しています 正常にこのイメージを構築しました。
>> 私は、ドッキングウィンドウの画像をすればだから、私はするつもりです 私がローカルに持っているすべての画像を参照してください。
その一つは、呼び出された私 ユーザー名、およびイメージの名前、
タグrepresenting-- 主にそれはバージョンタグです。
>> だから今、私が実行したい場合 それは、私がドッキングウィンドウの実行を行います。
そして、私はちょうど-d -Pをしたいです。 V1を実行してください。
だから私は、私は2を持っていることを今見ることができます コンテナは、いずれかを実行している私はちょうど
作成され、ハロー 私が最後だデッカーの1。
>> そして、あなたはそれことがわかります それを別のポートを割り当てます。
だから私は、同じIPに行くが、それを割り当てた場合、 異なるport--うまくいけば、私はしませんでした。
だから今、これはアプリケーションです 私はデプロイされたこと。
>> 私は変更したい場合は、私 すぐにソースコードを編集することができます
そして次の操作を行います。
それでは、こんにちはハーバードをしましょう​​。
だから今何が起こっているのか 起こることを私はということです
でそれをタグ付けに行きます 異なるversion--ああ、
これはそれにタグを付けguy--ありません 異なるバージョンの。
そして、あなたはするつもりです see--は、あなたたちは期待しています
それは、同じ時間を取ります それをもう一度構築したりしないように？
すべての権利、と誰もがなぜ知っていますか？
声を上げて。
>> 聴衆：[聞こえません]
>> NICOLA KABAR：それは基本的に行っております 以降のみのいずれかの手順を変更してください。
そのためには、使用しようとしています キャッシュは、これらの層のそれぞれを使用して。
そして、それは本当にの一部です デッカーのキラー機能
それは実際に利用する方法です そして、引き継いで再利用
同じのためのディスク 情報の正確枚。
>> だから我々は同じことを行う場合には、 それだけで数秒を要しました。
我々は今redeploy--したい場合 私は3つのコンテナを持っている必要があります。
しかし、この1がされています the-- 7 1を務めました。
だから今では第三の容器です。
誰もが理解して 私はちょうどここに何をしましたか？
>> だから今、あなたはこれを共有したい場合は 友達と実際に素早くコンテナ、
あなただけのドッキングウィンドウをプッシュ行うことができます うまくいけば、コンテナの名前。
だから今それをプッシュするつもりです to--私はここに署名していませんよ。
そのことはごめんなさい。
しかし、私は今、このトラブルシューティングを行うつもりはありません。
しかし、基本的に一つのコマンド ちょうどそれを押し上がっています。
そして、あなたのことができるようになるだろう あなたがドッカーハブに行けばそれを参照してください
そして、あなたは、あなたがしているログイン それを見ることができるようになるだろう。
そして、あなただけのことができます 起こっている誰でもポイント
行くとそれを引っ張ってそのイメージを使用しています。
そして、彼らはそれを使用することができます。
>> そのことで、うまくいけば 私は一種の実証します
どのように簡単にはドッカーで動作するようです。
そして、私はちょうどに行きますよ 真野にそれをお返し。
そして、彼はここからそれを取るだろう。
>> MANO MARKS：すべての権利 感謝、感謝ニコ。
だから何？
だから、物事の私 やってみたかった一緒に入れています
なぜこれがimportant--です なぜドッカーと理由
コンテナは、あります 重要な新開発、
実際にソフトウェアを行うための新しい方法。
>> 私は前に、私はするつもりです わずか数統計をご紹介します。
私はこれらのすべてを読んでするつもりはありません。
しかし、これはあなたにどのようにについて多くのことを示しています 人気これはコミュニティです。
コアデッカー技術 オープンソースです。
だから、ドッカーエンジン、作曲、です スウォーム、他の原料の束
すべてのオープンソースです。
そして、私たちは私が何をしたか、持っています 、1300投稿者を言います。
あなたが見ている場合は、今見ています 求人数、最後の時間
我々は、約43,000の仕事だった、見えました 開口部は、具体的に言及します
デッカーに精通。
画像の何百万、数百を持っています デッカーハブからダウンロードされて。
そして、よく、はるかに大規模な統計。
>> 興味がある人のために、それを もともとPythonで書かれました
[移動に書き換えます。
そして、それだけをされています それだけだsource--開きます
約2年半のためにリリースされ、 これは2年半でいることを意味し、
私たちは膨大な量を見てきました 成長と重要性
コミュニティでこのの。
そして、私は話をしたいです 理由について少し。
>> だからの一部を繰り返すと ニコのキーポイントは、デッカーは高速です。
これは、移植性があります。
これは、再現性があります。
そして、それは標準的な環境をセットアップします。
>> そして、これは私の安っぽいですwhat-- モノリスは何をslide--根絶
それは、人々が行う支援しているです ソフトウェア業界の多く
で始めました 2000年代初めには、移動しています
これらのモノリシックから 単一のアプリケーション
すべての依存関係がなければならなかったところ 全体のアプリは持っていた前にテスト
展開される、どの ウェブサイトを意味するかもしれません
一度だけ展開されました 3ヶ月毎、またはそれ以上、
はるかサービスへ 指向アーキテクチャ
またはコンポーネント化異なる種類 アプリケーションアーキテクチャの。
だからこれらを可能にすること アーキテクチャの種類
それはを活用 デッカーは、これらの3つの中で実行します
開発の主要分野、どの 開発は、あなたの実際のコードを書いています、
あなたのコードをテストし、それを展開します。
>> では、なぜこれが重要なのですか？
あなたがしている場合A--私は例をあげてみましょう。
あなたがウェブサイトであれば デバイスの開発者、あなたがしています
基づいてウェブサイトを開発 ダビデはこちらに生成データベース。
申し訳ありませんがダビデは、私はあなたを呼んでいます。
あなたが展開したい場合 全部、あなたがしたいです
従来の下に待たなければなりません モノリシックなソフトウェア開発
環境、あなたは待つ必要があるだろう 彼は、データベースを用いて行ったまで
あなたが実際に作ることができる前に、 あなたのウェブサイトへの変更。
あなたは、再デプロイする必要があるだろう そうするアプリケーション全体。
>> そして、何デッカーは、あなたが行うことができます、各です 別のコンポーネントの人の仕事
彼らが行くように、ちょうど作り、それらを更新 インタフェースは同じままことを確認してください。
だから、何を行っています それは人々をシフトしていますされています
これらの巨大な一枚岩をやってから 設計ソフトウェア、その
連続に毎月展開 統合と持続的発展
環境。
>> さて、これは、ドッカーに固有のものではありません しかしデッカーは、それがそんなに簡単になり、
これはあなたが基本的にしていることを意味 常に展開。
私たちは、ある企業に話します 一般に公開アプリケーションのデプロイ
何千回日理由 彼らはただ作るの値を参照してください。
小さな変化、および限り、 それがテストを通るように、
それが生産に外出させます。
ニコはいつも私に言っていました 以前のそれは多くの環境で、
の標準的なライフサイクル 容器は秒単位で測定され、
仮想マシンに対し、 数ヶ月で測定されることがあります。
>> 私はわずかに撮りたかったです 私はだからここに向けます
教育機関で。
私は方法の例を与えたいと思いました これは、教育研究に動作します
状況。
だから組織があります bioboxesと呼ばれます。
Bioboxesは、DNAを行います 研究者のための分析。
>> 今、彼らは何を見つけたときにということでした researcher--、これではありません
いずれかの特定の障害の researcher--しかし時
展開研究者 解析するアルゴリズム、
特定の方法において、DNAサンプル、 彼らはソフトウェアを記述し、
多分に、それを公開します どこかGitHubのか、
そしてそれらが行われました。
>> さて問題は、ということでした 必ずしも再現性がありませんでした。
順番にするため、 ソフトウェアを理解し、
彼らはのために設定されることになります 正確な開発環境
その研究者は、通常、使用されていること 自分のラップトップ、またはサーバー、またはデータ
彼らが使用していたセンター。
その結果として、それは非常に困難でした 時の研究結果を再現します
DNAサンプルを分析する検索します incidence--のようなもので、
心臓発作の発生率を比較します 存在する特定の遺伝子に基づいて、
例えば、または癌の危険、または 物事の他の種類のいずれか。
>> そこで、彼らが何をしたか代わりでした 彼らはコンテナの作成を開始。
そして、あなたはbioboxes.orgに行くことができ、 それは偉大な組織です。
そして、彼らがやっていることは、彼らが生産され 調査に基づいた容器。
そして、誰かが送信されるたびに そのサンプルに、彼らはそれを実行することができます。
そして、それはすべての環境を持っています そのアルゴリズムを実行するために必要な
そして結果を生成します。
そして、彼らは、彼らがしていることを発見しています はるかに可能性が高いとはるかに
より迅速にできるように 人々に結果を返します。
>> そして、実際には、どのような人がやっています DNA上の独自の分析を実行しています、
bioboxesへのそれを送信し、 その後bioboxだけのデータを取り、
さまざまに対してそれを実行します 異なるコンテナ
異なる結果を表示するには 別の調査に基づきます。
だから、非常に強力です 方法これは研究者で
可能にする単一のインスタンスを作ることができます 他の人が試してみて、再生します
結果。
>> それでは、どのように始めるのですか？
私たちは、よくLinux上でサポートされています。
だから、あなたがインストールしたい場合 Linux上では何も、
あなたは、標準を使用します パッケージマネージャがインストールします。
Debianを使用している場合、それはaptの取得です。
CentOSのyumをです。
FedoraのRed Hatはあります rpm--私は覚えていません。
とにかく、それはすべてあります。
私たちは、大規模な様々なサポート Linuxディストリビューションの。
あなたはそれらをチェックアウトすることができます。
>> また、オプションがありますので、 MacやWindows上で実行することができます。
今ニコは、以前のことを述べました それはLinux上でのみサポートされていました。
それだから本当です Linuxカーネルを必要とします。
しかし、あなたは仮想マシンで実行することができます。
そして、何デッカーツールボックス あなたがダウンロードすることができ、し、
それはあなたのその仮想マシンを提供します。
>> だから迅速な48 第二に、私が思うに、ダウンロードしてください。
あなただけドッカーで検索 ツールボックス、Macにそれをダウンロードし、
この部分はあります コー​​スは誰ので、スピードアップ
ダウンロード信号を見たいですか？
標準のMacのインストール、 そして、あなたはしています
ジェロームは、自分のパスワードを入れ見に行きます。
それは非常にエキサイティングです。
そして、それがインストールされ ツールの全体の束。
特に、それはなります コマンドラインをインストールします。
そして、あなたが見ることができます ジェロームは彼の画像をテストします。
>> そしてこれに基づいて、 あなたはそれのYouTubeを見ることができます
ニコが興味を持っていると考えています スターウォーズ、ジミー・キンメル・ショー、
私はエレンだと思います。
私は最後のものであることを考えます エレンショーからクリップ。
>> だからデッカーツールボックスは、しかし来ます ただデッカー機以上で。
だからデッカーマシンがあります 助け事
あなたは、仮想設定します お使いのWindowsのマシン
またはWindowsのボックスまたはMacをMac-- box--とプロビジョニングを行うことができます、
>> しかし、それはまた、付属しています スウォームと作曲、
あなたが大きな行うに役立つように設計されています アプリケーションの規模な展開。
だから、あなたが管理する場合 ノードのクラスタ、
コンテナのクラスタ、構成し、 スウォームはそれについて移動するための方法です。
>> そしてもちろん、それは付属しています ドッカーエンジンとKitematic、
これはこのデスクトップGUIです。
私はまた、ドッカーレジストリを言及する必要があります ツールボックスに含まれていません、
それはあなたがあなた自身を実行するための方法です デッカーのようなデッカー画像の登録
ハブが、あなたはまた、単に使用することができます それを行うための方法としてドッカーハブ。
>> あなたが見ていると、プロットツイスト、 それは、コンテナ内で実行されています。
そして、それは私たちがしている方法です 私たちのスライドを配布。
この全体のプレゼンテーションがあります 実際のHTMLスライドデッキ。
そしてそれはで実行されています あなたが得ることができるコンテナ、by--
>> NICOLA KABAR：はい、それはです 私の最大の上にフルタイムで実行されています。
そして、私はそれから提示しています。
そして、あなたは直後にドッカーを行います あなたのツールボックスをインストールします。
あなただけのドッキングウィンドウの実行を行うことができます それを取得し、スライドを使用しています。
>> MANO MARKS：そして、それはそれです。
だから我々は、今後のためにあなたのすべてに感謝します。
そして、私たちが質問に答えて幸せです。
私は誰の前に言及する必要があります 葉あそこのTシャツがあります。
申し訳ありませんが、誰も見ている人 このライブ・ストリームまたはビデオに、
しかし、我々はあそこにドッカーTシャツを持っています。
そして、我々はデッカーの学生を知って、 そして、私の経験で、
あまりにも、無料の服のような教授。
>> そこで出てくるためにあなたのすべてに感謝します。
また、Twitterで私たちに従います あなたがしたい、またはしない場合。
私は気にしない。
また、Twitterでドッカーに従ってください。
それはまた面白いです。
そして、それはそれです。
Docker.com。
ありがとう。
>> [拍手]