【Docker入門】Dockerって何?何が便利で流行っているのか?技術ライターが仕組みを解説!

SEプラス IT教育チャンネル【公式】
8 Aug 202316:07

Summary

TLDRこの動画は、Dockerという隔離された実行環境を提供するソフトウェアについて説明しています。Dockerは、Linuxベースの環境でコンテナと呼ばれる隔離された空間を作成し、そこにアプリケーションとその実行に必要な環境を1つのパッケージとしてまとめることができます。これによりアプリケーションの移植性が高まり、開発環境や本番環境での動作の一貫性が保たれます。また、Windowsでも動作可能なDockerデスクトップを使えば、WindowsからLinuxアプリケーションを実行できるメリットもあります。Dockerは開発、テスト、CI/CDなど様々な場面で活用されています。

Takeaways

  • 🐳 Dockerは、プログラムを隔離した環境(コンテナ)で実行するための仕組みです。
  • 📦 Dockerイメージからコンテナを作成し、そのイメージには実行に必要なすべてのファイルが含まれています。
  • 🌐 各コンテナには固有のネットワークとファイルシステムが割り当てられ、相互に影響を与えません。
  • ✨ イメージさえ作っておけば、開発環境や本番環境で全く同じ状態で実行できます。
  • 🚀 DockerHubからイメージをダウンロードし、簡単にサーバーソフトを起動できます。
  • ♻️ コンテナの作成と削除が容易なため、試行錯誤しやすくなります。
  • 🐧 本来はLinux環境でのみ動作しますが、Docker Desktopを使えばWindows/MacOSでも利用可能です。
  • 👨‍💻 開発の現場ではDockerイメージを作成し、チームメンバーで共有して同一環境を実現します。
  • 📚 プログラミング学習の場面でも、Dockerを使った環境構築が一般的になってきました。
  • ⚙️ CI/CDパイプラインでもDockerが活用され、テスト環境の構築や本番デプロイが容易になります。

Q & A

  • Dockerとは何ですか?

    -Dockerは、プログラムを隔離して実行するための環境です。この隔離された実行環境のことをコンテナと呼びます。Dockerは主にLinux環境で動作します。

  • コンテナの特徴は何ですか?

    -コンテナは、ディスクやネットワークが分離されているため、他のコンテナに影響を与えずに実行できます。コンテナ内外の通信やファイルアクセスには明示的な設定が必要です。

  • Dockerの主なメリットは何ですか?

    -Dockerの主なメリットは、1)隔離されているため他のシステムに影響を与えない、2)イメージから簡単に同じ環境を作れる、3)イメージを共有できるため誰でも簡単に利用できる、4)Windows/Macでも動作する、などがあります。

  • イメージとは何ですか?

    -イメージとは、コンテナを作成するための基になるファイルのことです。イメージには、コンテナに含まれるファイルや実行するプログラムなどが含まれています。

  • DockerHubとは何ですか?

    -DockerHubは、様々な公開済みのイメージが登録されているサービスです。オフィシャルなイメージや個人開発のイメージなどが公開されています。

  • 開発での利用シーンを教えてください。

    -開発では、開発したものを本番環境に納品する際にイメージとして配布したり、チーム内で同じ開発環境のイメージを共有して使ったりすることがあります。

  • プログラミング学習での利用シーンを教えてください。

    -プログラミング学習の場面でも、Dockerを使って環境を作ることがよくあります。Docker環境を使えば、パソコンの環境に影響を与えずに学習環境を構築できます。

  • CI/CDにおけるDockerの利用シーンを教えてください。

    -CI/CDでは、テスト環境の構築や本番環境へのデプロイにDockerが使われます。Dockerを使えば、毎回まっさらな状態から効率的にテストでき、本番環境への反映も簡単になります。

  • WindowsやMacでDockerを使うにはどうしたらいいですか?

    -WindowsやMacでDockerを使うには、Docker Desktopをインストールする必要があります。Docker Desktopには、Linuxのシミュレーションソフトが含まれており、その上でDockerが動作します。

  • Dockerの主な利用シーンは何ですか?

    -Dockerの主な利用シーンは、1パッケージ化が必要な場合や、同じ環境を再現したい場合、そしてコンテナを自在に作成・削除できる利点を活かしたい場合などです。

Outlines

00:00

🐳 Dockerの概要と特徴

このパラグラフでは、Dockerの基本的な概念について説明しています。Dockerはコンテナと呼ばれる隔離された実行環境を作り出すためのプログラムで、プログラムとその実行に必要なライブラリなどをまとめて1つのイメージとしてパッケージ化することができます。コンテナはLinuxベースで動作し、それぞれがネットワークやディスクを分離しているため、相互に影響を与えることがありません。このような隔離された環境を作り出すことで、各プログラムの動作を分離し、干渉を防ぐことができます。

05:00

🚀 Dockerの主要機能とメリット

このパラグラフでは、Dockerの主要な機能とメリットについて説明しています。Dockerはコンテナをイメージから作成します。イメージにはプログラムの実行に必要なファイルがすべて含まれているため、イメージさえ作成しておけば、開発環境や本番環境など、様々な環境で同じ状態でプログラムを実行できます。また、コンテナは作成と削除が簡単なので、試行錯誤が容易です。さらに、DockerHubというイメージレジストリがあり、誰でも公開されているイメージをダウンロードして利用できます。これにより、サーバーソフトウェアの構築が非常に簡単になります。

10:03

🖥️ Dockerの活用シーン

このパラグラフでは、Dockerの活用シーンについて説明しています。Dockerは基本的にLinuxで動作しますが、Docker Desktopを使えばWindows/MacOSでもLinux環境を利用できます。これにより、これまでLinuxでしか利用できなかったソフトウェアをWindows/MacOSで実行できるようになります。Dockerは開発、チームでの共有環境構築、プログラミング学習、CI/CDなど、様々な場面で活用できます。特に、環境の分離や再現性の高さから、テストや本番環境への適用が容易になるというメリットがあります。

15:05

✨ Dockerのまとめと導入の提案

最後のパラグラフでは、Dockerの特徴とメリットをまとめています。Dockerはコンテナという隔離された実行環境を作ることで、プログラムをポータブルに移植できるようになります。隔離された環境なので他への影響がなく、試行錯誤しやすくなります。また、イメージという形でプログラムをパッケージ化できるので、様々な環境で同じ状態で実行できます。このようなメリットから、開発、テスト、本番環境での活用が期待できます。講師は最後に、Dockerの利用を勧めています。

Mindmap

Keywords

💡Docker

Dockerは、アプリケーションを「コンテナ」と呼ばれる隔離された実行環境で動作させるためのプラットフォームです。この動画では、Dockerが隔離環境を提供することで、アプリケーション間の干渉を防ぎ、開発やデプロイを簡単にする利点が説明されています。例えば「Dockerはそれぞれの実行環境を隔離して実行することで、互いに影響がないようにする仕組みです」と述べられています。

💡コンテナ

コンテナとは、Dockerが提供する隔離された実行環境のことです。コンテナ内には、アプリケーションの実行に必要なファイル、ライブラリ、設定などが含まれており、他のコンテナや外部環境から分離されています。動画では「それぞれのコンテナは、ディスクが分かれていて、互いに影響を受けないのはもちろんです」と説明されており、コンテナ同士が干渉し合わないことが強調されています。

💡イメージ

イメージとは、コンテナを作成するための基になるファイルのことです。イメージには、コンテナで必要となるファイルやライブラリ、設定などが含まれています。動画では「イメージは一つのファイルででして構成されていってその中にはコンテナの中に含まれるファイルとか、それからコンテナを作った時に実行するプログラムの名前とか、そこに渡すデータとかそういったものが含まれています」と説明されています。イメージを作成しておけば、同じ環境を簡単に複製できるというメリットがあります。

💡隔離

隔離とは、コンテナ内部の環境を外部から完全に分離することを指します。この隔離の仕組みにより、他のアプリケーションやホストOSに影響を与えずにアプリケーションを実行できます。動画では「隔離した環境というものがですねまあ冒頭でも少し触れたコンテナというものです」と説明されており、コンテナが隔離された実行環境であることが強調されています。この隔離の特性が、Dockerの主要な利点の1つとなっています。

💡ポータビリティ

ポータビリティとは、Dockerイメージを様々な環境で同じ状態で実行できる可搬性のことを指します。動画では「イメージさえ作っておけばですねそれをいろんなところで動かせます」と説明されており、ポータビリティの高さが強調されています。開発環境、テスト環境、本番環境など、環境を選ばずにイメージを実行できるため、アプリケーションの移植が容易になります。この特性は、開発の効率化やデプロイの標準化などに貢献します。

💡Linux

LinuxはDockerが動作するための基盤となるオペレーティングシステムです。動画では「Dockerには、Linuxの技術が使われていて、Linux環境で動きます」と説明されています。Dockerはもともと Linux 上で動作するように設計されているため、Windows や Mac 上で動作させる場合はDockerデスクトップなどのソフトウェアを使ってLinux環境をエミュレートする必要があります。LinuxがDockerの実行環境であることを理解することが重要です。

💡ライブラリ

ライブラリとは、プログラムが利用する機能の集まりのことです。動画では「ライブラリというのはいくつかの機能を提供するもので例えば画像やPDF、いろんな計算データベースなどいろんな機能を提供するものがあります」と説明されています。ライブラリはアプリケーションの実行に不可欠ですが、従来の方式ではライブラリのインストールや更新によりアプリケーションが影響を受ける可能性がありました。Dockerではコンテナ内にライブラリを含めるため、このような問題を回避できます。

💡DockerHub

DockerHubは、Docker公式が提供するDockerイメージのリポジトリサービスです。動画では「ドッカーハブというサイトですこれはドッカー車が提供しているものでオフィシャルなものや個人が開発したものあとはそれを改良したものとかですたくさんのイメージが置かれています」と説明されています。DockerHubにはさまざまなイメージが登録されており、コマンド1つで必要なイメージをダウンロードしてコンテナを起動できるため、開発の効率化に役立ちます。

💡CI/CD

CI/CDは、Continuous Integration / Continuous Deliveryの略語で、ソフトウェア開発の自動化プロセスを指します。動画では「CICDの環境ですねCICDというのは継続的デリバリーとかそういうことですけれども一言で言うと作ったプログラムを自動でテストしてテストに問題がなければ本番期に反映させるそんな仕組みのことです」と説明されています。Dockerを活用することで、一貫したテスト環境を作れるため、CI/CDパイプラインの構築が容易になります。

💡開発環境

開発環境とは、ソフトウェアの開発に使用される環境のことです。動画では、「チームリーダーの人が開発者用のイメージを作ってそれをチームメンバーに配布してそのコンテナで各自が同じよう環境でですよね開発していくということもよくあります」と述べられており、Dockerを使ってチーム内で統一された開発環境を共有する利点が示されています。開発環境のセットアップが容易になり、環境の違いによる問題を回避できます。

Highlights

Dockerは隔離された実行環境であり、Linuxで動く。

隔離された環境のことをコンテナと呼び、それぞれ固有のネットワークとディスクが割り当てられる。

コンテナの外にアクセスするには、起動時に明示的な設定(穴を開ける設定)が必要。

コンテナはイメージから作られ、イメージはDockerHubに登録されている。

イメージさえ作っておけば、様々な環境で同じものを実行できる。

コンテナの作成・削除が簡単で、試行錯誤しやすい。

DockerHubにはオフィシャルやユーザー作成のイメージが登録されている。

dockerコマンドを使えば、イメージをダウンロードして簡単にサーバーソフトを実行できる。

Docker Desktopを使えば、WindowsやMacでもLinuxの開発環境を使える。

Dockerのメリット1: 隔離されているので他のシステムに影響を与えない。

Dockerのメリット2: イメージ化でファイルのコピー漏れの心配がない。

Dockerのメリット3: Windows/MacでLinuxの環境が使える。

開発の場面でDockerイメージを使って納品することが多い。

チーム開発でメンバー全員が同じDockerイメージを使うことがある。

プログラミング学習でもDocker環境を使うことが多くなった。

Transcripts

play00:00

皆さんこんにちはSE+

play00:03

IT教育チャンネルナビゲーターの寺井

play00:05

ですということで本日は大沢講師をお招き

play00:08

して

play00:09

プチ講義を行っていただきたいと思います

play00:11

それでは大澤さんよろしくお願いしますご

play00:15

紹介いただきました

play00:16

技術ライターの大澤です今日は

play00:18

Dockerって何何が便利なのという

play00:21

ことでドッカーが流行っている理由その

play00:24

ポイントについてお話ししていきます

play00:26

Dockerというのはどっかという会社

play00:29

が開発したプログラムを

play00:31

隔離して実行するための

play00:33

環境ですこうした仕組みや読解以外にも

play00:36

あってですねコンテナと呼ばれる技術が

play00:39

使われていますロッカーのロゴはこんな

play00:42

感じのクジラの上にコンテナが乗っかって

play00:44

いるようなものなんですけどもこういう

play00:46

絵柄であるのはこれが理由ですこの

play00:48

コンテナの中にはプログラム本体だけでは

play00:52

なくてですねライブラリとかプログラムの

play00:54

実行に必要なものも全部

play00:57

含めて1パッケージにできます

play00:59

ロッカーには

play01:01

Linuxの技術が使われていて

play01:03

Linux環境で動きます

play01:05

Linuxっていうのはサーバーでよく

play01:07

使われる

play01:08

OSですねといろいろ言ってますけれども

play01:11

いずれにしても特化というのはプログラム

play01:14

を実行するための

play01:16

Linuxの環境の一つです

play01:18

そこでどっかについてお話を始める前に

play01:23

Linuxでプログラムを実行するという

play01:25

ところについて見ていきたいと思います

play01:27

プログラム動かすにはそのプログラムを

play01:31

コンピューターにインストールしますこの

play01:34

インストールという作業はプログラムを

play01:36

コピーするだけではなくてそれに付随する

play01:39

いくつかのファイルをコピーします

play01:42

その

play01:43

代表的なものがライブラリです

play01:45

ライブラリというのはいくつかの機能を

play01:49

提供するもので例えば画像やPDF

play01:51

いろんな計算データベースなどいろんな

play01:54

機能を提供するものがあります

play01:57

こうした機能を使ったプログラムは一緒に

play02:00

ライブラリをコピーしないと動かないと

play02:03

いう事情があります

play02:04

このライブラリなんですけれども

play02:06

コンピューター全体で共有して使います

play02:09

例えばこの図にありますように一つの

play02:13

コンピューターにプログラムAと

play02:15

プログラムBをインストールする場合同じ

play02:18

機能を使っている場合はライブラリは1つ

play02:21

だけでそれを共有するというような動きに

play02:24

なりますここでプログラムBを

play02:27

アップデートしたとしましょうそれに伴っ

play02:30

てプログラムBが使っているライブラリも

play02:33

アップデートされる可能性があります

play02:36

そうするとですねプログラムAもその

play02:39

アップデートしたライブラリを使うことに

play02:41

なりますその結果

play02:44

バージョンが違うのでプログラムAの方が

play02:46

ですね不具合を起こすというようなことが

play02:49

ありえるわけですねじゃあどうすればいい

play02:51

のという話になりますがここで最初にお

play02:55

話しした

play02:56

隔離の話になります

play02:58

そもそもプログラムAとプログラムBとで

play03:02

ライブラリとかそういうものを共有する

play03:05

から問題なのであって別々の場所に分ける

play03:08

実際にディスクを分けてしまえば問題が

play03:11

なくなりますよねここがロッカーの原点

play03:14

です

play03:16

ロッカーはこのようにプログラムを隔離し

play03:19

て実行することで

play03:20

互いに影響がないようにする仕組みです

play03:23

その仕組みとメリットについてもう少し

play03:25

深く見ていきますDockerはそれぞれ

play03:29

の実行環境を確立する仕組みです利用する

play03:33

にはドッカーエンジンというソフトを

play03:36

インストールしますそうするとその上で

play03:40

隔離した環境が使えるようになります

play03:43

隔離した環境というものがですねまあ冒頭

play03:45

でも少し触れたコンテナというものです

play03:48

それぞれのコンテナは

play03:50

ディスクが分かれていて

play03:52

互いに影響を受けないのはもちろんです

play03:54

けれども

play03:55

ネットワークも別々に分かれていますここ

play03:58

ではIPアドレスを

play04:00

172-1-2-3などと書いてますけど

play04:02

これは環境によって異なりますけれども

play04:04

いずれにしてもそれぞれ別のIPアドレス

play04:07

が割り当てられ

play04:09

ますこれがdカードのメリットの一つ目

play04:11

です

play04:12

それぞれが

play04:14

隔離されるので

play04:15

互いの影響がありませんあるプログラムが

play04:18

ファイルを書き換えてしまったために別の

play04:21

プログラムが動かなくなるそういった事態

play04:23

がなくなりますところで

play04:27

図を見ると1台のサーバーの中に

play04:29

複数のサーバーがあるというように見え

play04:31

ますそうするとですね

play04:34

過疎サーバーと何が違うのという話もなり

play04:36

かねませんただドッカーはですねあくまで

play04:40

play04:40

Linuxの自己環境を確立するだけです

play04:43

それぞれのコンテナの中には

play04:46

Linuxは含まれていませんそれから

play04:48

それぞれのコンテナの中では基本的に一つ

play04:52

のプログラムしか動きません

play04:55

たくさんのプログラムを動かしたいので

play04:57

あればそれぞれコンテナを分けて使うと

play05:00

いうやり方をします例えばWebサーバー

play05:04

とデータベースサーバーのソフトそれぞれ

play05:06

別のコンテナで動かすというのやり方です

play05:09

ねこれがdカード最大の特徴であり本当に

play05:14

実行環境を分けるそれだけですね

play05:17

仮想サーバと違ってそれぞれ

play05:19

エミュレーションしてるわけではないので

play05:21

とても高速ですただこの図からわかるよう

play05:25

に前提として

play05:27

Linuxを使っていますそのため

play05:29

Linuxの環境でしか動きません

play05:32

繰り返しになりますけれどもそれぞれの

play05:34

コンテナは

play05:35

完全に

play05:36

隔離されています

play05:37

コンテの中からコンテナの外にアクセス

play05:40

することはできませんこれは

play05:43

ネットワークもファイルも同様です例えば

play05:46

コンテナの中で何かプログラムを動かすと

play05:49

しますとそのプログラムに外から通信する

play05:52

ということはできませんなぜなら

play05:54

隔離されているからですね

play05:56

でこのようにですねもしプログラムに外

play06:00

から通信したいのであれば明示的な設定が

play06:03

必要ですどういうことかと言いますと

play06:06

具体的に外から通信できるように

play06:10

穴を開けるようにしてコンテナを動かすと

play06:13

いう形ですねファイルについても同様です

play06:16

コンテナの内側でしかそのファイルに

play06:20

アクセスできないのでもしコンテナの外に

play06:23

アクセスしたい時には

play06:24

穴を開けてどこかから外に向けてアクセス

play06:28

できるようにするという形です今回はどこ

play06:31

かの深い話をするのが目的でないので割愛

play06:34

しますけれども明示的に設定しない限りは

play06:37

ですねどこにもアクセスできないという

play06:40

ことをちょっときちんと理解するという

play06:43

ことが大事ですでそれでは当然使い物に

play06:46

ならないので実際には目的ごとにこうした

play06:49

通信とかリスクの設定とかをしなければ

play06:51

ならないというところがどっかを使う上で

play06:54

の大きなポイントになりますではではこの

play06:57

コンテナどうやって作るのかと言いますと

play06:59

実はですねこれは

play07:01

イメージと呼ばれるものから作ります

play07:04

イメージは一つのファイルででして構成さ

play07:07

れていってその中にはコンテナの中に

play07:10

含まれるファイルとかそれからコンテナを

play07:13

作った時に実行するプログラムの名前とか

play07:15

ですねそこに渡すデータとかそういった

play07:18

ものが意識含まれていますこれを

play07:21

ダウンロードして展開して実行するそう

play07:24

するとコンテナができるという仕組みです

play07:26

でここでメリット2つ目です

play07:29

イメージから作るということはこの

play07:32

イメージの中にプログラムの実行に必要な

play07:35

ファイルを全部まとめて含めておけばいい

play07:38

というわけですですのでもうコピーモデル

play07:41

とかそういうのがなくて本当に

play07:43

イメージの中に

play07:44

ワンパッケージとしてまとめるということ

play07:46

ができます

play07:48

イメージさえ一度作っておけばですねそれ

play07:50

をいろんなところで動かせます例えば1個

play07:54

イメージを作っておいてそれを開発者の

play07:56

コンピュータで動かすそれから開発

play07:59

サーバーで動かすそれから本番サーバーで

play08:02

動かすとかですねまあ一旦イメージを作っ

play08:04

ておけばそれをもとに様々な

play08:07

コンピューター上でいくつでも動かすこと

play08:09

ができます

play08:10

物価がない頃はですね本番サーバーに持っ

play08:14

ていくときはファイルのコピー漏れがない

play08:16

かとかそれから間違って上書きしていない

play08:19

かとかちょっと事前に注意するとか

play08:23

いろいろ配慮する必要があったわけです

play08:25

けれどもどっかを使えばですねそうした

play08:28

心配がなくまあ一発しかもどの環境でも

play08:31

全く同じ状態で動くこれはかなり楽ですよ

play08:35

ねそしてコンテナはいらなくなってばすぐ

play08:38

に消すことができます

play08:40

隔離されているので消しても他に影響が

play08:43

あるということはありませんつまり作っ

play08:46

たり消したりというのが自在ということ

play08:48

ですねこれはですねあのいろいろ試行錯誤

play08:52

しやすいですしよくわからなくなって

play08:54

しまったとかそういう場合はですね決して

play08:57

最初からやり直すというのも簡単ですただ

play09:00

当然ですけれどもコンテナを消せばその

play09:02

コンテの中に

play09:04

含まれているデータというのは当然全て

play09:06

消されますとか

play09:07

繋がります

play09:09

さてさてこのイメージですけれども自分で

play09:11

作るということも当然できます実際開発の

play09:14

現場では実際に作ると思うんですけども

play09:15

様々な人がですねすでに作ったイメージを

play09:20

登録している場所というのがありますその

play09:24

代表的なものがドッカーハブというサイト

play09:26

ですこれはドッカー車が提供しているもの

play09:29

でオフィシャルなものや個人が開発した

play09:32

ものあとはそれを改良したものとかです

play09:35

たくさんのイメージが置かれています

play09:37

例えばアパッチとかエンジンXとか

play09:40

MySQLなどよく使うソフトウェアの

play09:43

イメージはすでにここに登録されています

play09:45

どっかハブに登録されたイメージこちらは

play09:48

誰でも利用できます利用するのはとっても

play09:51

簡単です

play09:53

ここに示しているようにですねロッカー

play09:55

ランというコマンドを使うと

play09:57

イメージをダウンロードして実行できます

play09:59

つまりコンテナンスつまり本当に一つの

play10:02

コマンドを実行するだけでサーバーの

play10:05

ソフトが動いてしまうこれは第3の

play10:08

メリットだと言えます簡単ですしサーバー

play10:12

ソフトの設定方法など知らない人でも

play10:14

サーバーを簡単に構築できるこれが

play10:16

ロッカーの第3の電熱ですねこの図にある

play10:19

ようにドッカーンエンジンXと一つやる

play10:22

だけで自分のパソコンの中でエンジンXと

play10:25

いうWebサーバーですけれどもこちらが

play10:27

動くということですねさてこのドッカー

play10:31

ですけれども先ほどから繰り返している

play10:33

ようにLinuxで動かす実行環境という

play10:36

形になります

play10:38

ですからリラックスでしか動かないんです

play10:40

けれども実はどっかデスクトップという

play10:44

ソフトを使うとWindowsとか

play10:46

MacOSとかで動かすこともできます

play10:48

これはどういうことかというとですねd

play10:51

カードデスクトップに

play10:53

Linuxをシミュレーションするための

play10:54

ソフトが入っていってその中でどこかが

play10:57

動いというわけですねWindowsや

play11:00

MacでDockerが動くということは

play11:02

ですねWindowsMacでLinux

play11:04

の開発ができるということですロッカー

play11:07

ですストップをインストールすると

play11:09

Linuxの特化を使って開発できるよう

play11:11

になるですからそこでどっか

play11:14

イメージを作ってそれをLinuxが動い

play11:17

てるサーバー環境にコピーして使うという

play11:20

ことが

play11:21

できるこれも大きなロッカーのメリット

play11:23

ですね開発するというところではなくても

play11:26

WindowsとかMacで

play11:28

Linuxが使えるというのはとても

play11:30

大きなメリットになると思います実際は

play11:34

Linuxだけでしか使わない使えない

play11:36

ソフトというのも多いですね特に最近です

play11:38

と例えば機械学習系のものとかは

play11:41

Linuxを前提にしたものが

play11:42

案外多いですねそうしたものもどっかを

play11:45

使えばWindowsやMacで実行

play11:47

できるという形になり

play11:50

はいそれではまとめですDockerとは

play11:54

隔離された実行環境です

play11:55

Linuxで動きます

play11:57

隔離された

play11:58

環境のことをコンテナと呼びますそれぞれ

play12:01

のコンテナには

play12:02

固有のネットワークとリスクが割り当て

play12:05

られますコンテナの外にはアクセスする

play12:07

ためにはですね

play12:08

起動時の明示的な設定穴を開ける設定です

play12:10

ねそれが必要になりますそしてコンテナは

play12:14

イメージから作ります

play12:16

イメージはドッカーハブに登録されていて

play12:18

簡単に誰でも使って起動することができ

play12:21

ますそして

play12:22

削除とかやり直しも簡単ですDocker

play12:25

は基本的にはLinux用ですけれども

play12:27

ロッカーデスクトップを導入するところで

play12:30

WindowsとかMacでも使うことが

play12:33

でき

play12:34

こうした特徴を踏まえたドッカード

play12:36

メリットはまずは隔離しているので同居し

play12:39

ている他のシステムに影響を与えない壊さ

play12:41

ないというところがメリットとして

play12:43

挙げられますですからですね気軽に試し

play12:47

たり実行したり消したりそういう試すこと

play12:50

ができるというのがメリットですそして

play12:53

ドッカーはコンテのイメージから作るわけ

play12:56

ですけれども

play12:57

イメージさえ作ってしまえば開発者もPC

play12:59

とか開発サーバーそれから本番サーバー

play13:01

様々な場面で同じもの全く同じものを実行

play13:05

することができますファイルはすべて

play13:07

イメージにワンパッケージ化されるので

play13:09

コピーの漏れとかそういう心配もありませ

play13:12

んそしてボッカーデスクトップを使う場合

play13:15

はWindowsとかMacの中で

play13:18

コンテナが動くつまり

play13:20

Linuxの環境のソフトを

play13:21

WindowsMacで動かすことが

play13:24

これは本当にLinuxのコマンド

play13:27

ちょっと使いたいというそんな場面で重宝

play13:29

しますDockerが使える場面は様々

play13:32

ですけれども1パッケージ化とやり直せる

play13:36

という利点を活かしたいところです例えば

play13:38

こうした場面でよく使われています一つ目

play13:41

こちら開発のためですね開発したものを

play13:46

本番機などに納品するような場面では

play13:49

読解イメージとして1パッケージで使うと

play13:52

いうことが多いですそれ以外にもですね

play13:55

チームリーダーの人が開発者用のイメージ

play13:58

を作ってそれをチームメンバーに配布して

play14:01

そのコンテナで各自が同じようは同じ環境

play14:05

でですよね開発していくということもよく

play14:08

ありますそれから最近ではプログラミング

play14:10

学習の場面でもよく使われますどっかを

play14:14

使ってですねプログラミングの環境を作る

play14:16

ことを前提に

play14:18

作られている学習コンテンツというのも

play14:21

珍しくないですね今までは

play14:24

各自パソコンにプログラミング

play14:27

環境をインストールしてもらったわけです

play14:28

まあ例えばいろんな言語とかエディターと

play14:31

かそういうのインストールしてもらった

play14:32

わけですけれどもパソコンの構成によって

play14:35

はですねうまくいかなかったりとか

play14:37

そもそもインストールすることでパソコン

play14:39

の通常の他の業務に影響が出てしまったり

play14:42

とか何かが壊れてしまってですねという

play14:45

ことがあったわけですドッカーではですね

play14:47

そういうことがありませんしそれからまず

play14:49

何よりですね勉強が終わったらきれ

play14:52

さっぱりせるそういうのもメリットですね

play14:55

そして最後はCICDの環境ですねCI

play14:58

CDというのは継続的デリバリーとかそう

play15:02

いうことですけれども一言で言うと作った

play15:05

プログラムを自動でテストしてテストに

play15:08

問題がなければ本番期に反映させるそんな

play15:11

仕組みのことですこのテストの場面でどっ

play15:14

かがよく使われますどっかを使えばですね

play15:17

いつでもまっさらな状態からテストして

play15:19

始められるので何度でもテストしやすい

play15:22

テストする時に前の状態が残っ持ってい

play15:25

ないそういったことで都合がいいからです

play15:27

ねそして本番に反映するような場面でも

play15:29

テストした後どっかのイメージを作って

play15:32

それを本番機に反映させるだけで済むと

play15:35

いうことも大きなメリットですドッカーは

play15:37

このようにコンテナという

play15:40

隔離された実行環境を作ることでそれを

play15:43

そのまま別のところにコピーしたりとか

play15:45

全部消してやり直したりとかそうした

play15:48

ポータビリティを実現する技術です様々な

play15:52

場面で便利に使えると思いますぜひ皆さん

play15:55

使ってみてください