Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コンテナ技術入門

 コンテナ技術入門

[フィンテックエンジニア養成勉強会(コンテナ技術特集)登壇資料]
土居 幸平(どい こうへい)

昨今の急速なビジネス変化に対応するツールとしてDockerコンテナは多くのサービスに利用され始めています。
そんなDockerコンテナの習得に乗り遅れた方、コンテナって何だろう?とお悩みの初学者の方向けにコンテナ・Dockerの基礎的な部分をお話します。

More Decks by AP Communications Co., Ltd.

Other Decks in Technology

Transcript

  1. プロフィール 土居 幸平(Doi Kohei) Twitter:@pyorne 2012~2020年 大手SIer、中小SIerにてインフラエンジニア(サーバ/ネットワーク)として従事 文教、メディア系を中心にシステム構築に携わる 2021年~ クラウドネイティブな世界へ飛び込むべくエーピーコミュニケーションズへJoin

    Azureのコンテナサービスを利用したシステム構築のコンサル/企業向けトレーニングなどを担当 会社名:エーピーコミュニケーションズ ①DevOps支援~受託開発、上流~下流工程、オンプレ、IaaS、PaaS、コンテナまで幅広い技術経験 ②Docker Enterprise事業を買収したMirantisと戦略提携を結んだ技術基盤力 ③日本マイクロソフトが提供する「Cloud Native Dojo」の提携パートナー ④書籍・執筆活動や技術コミュニティへの参加、登壇などエンジニアドリブンな活動 2
  2. ハイパーバイザー 仮想マシンとの比較 ゲストOS (カーネル) ハードウェア 仮想マシン 仮想マシン ホストOS(カーネル) ハードウェア コンテナ

    (プロセス) 従来の仮想マシンのイメージ図 コンテナのイメージ図 アプリケーション ライブラリ ゲストOS (カーネル) アプリケーション ライブラリ アプリケーション ライブラリ アプリケーション ライブラリ コンテナ (プロセス) よく似た概念に従来の仮想マシンがある コンテナの実態は、プロセスである 仮想マシンのアプリケーション ⇒ ゲストOS上のカーネルで実行 1 コンテナのアプリケーション ⇒ ホストOS上のカーネルで実行 7 1 https://ascii.jp/elem/000/000/415/415665/ 正確には少し異なりますが、ここでは比較のためあえてこういう表現 にしております
  3. ハイパーバイザー 仮想マシンとの比較(隔離性) ゲストOS (カーネル) ハードウェア 仮想マシン 仮想マシン ホストOS(カーネル) ハードウェア コンテナ

    (プロセス) 従来の仮想マシンのイメージ図 コンテナのイメージ図 アプリケーション ライブラリ ゲストOS (カーネル) アプリケーション ライブラリ アプリケーション ライブラリ アプリケーション ライブラリ コンテナ (プロセス) プロセス同士の干渉や影響が懸念 9 仮想マシン単位で分離されている
  4. Build、Ship、Run Build(構築)、Ship(共有)、Run(実行)はDockerが掲げるスローガンであり Dockerが提供する基本機能 14 コンテナエンジン(dockerd) ハードウェア pull コンテナー コンテナレジストリ (Docker

    Hub) CentOS リポジトリ Ubuntu リポジトリ Container Image push Nginx リポジトリ カーネル Run Build Container Image Container Image docker image pull docker image push Dockerfile tag:latest tag:6.7 ・ ・ tag:latest tag:14.04 ・ ・ tag:latest tag:19.1 ・ ・ Ship
  5. Build、Ship、Run Build(構築)、Ship(共有)、Run(実行)はDockerが掲げるスローガンであり Dockerが提供する基本機能 17 コンテナエンジン(dockerd) ハードウェア pull コンテナレジストリ (Docker Hub)

    CentOS リポジトリ Ubuntu リポジトリ push Nginx リポジトリ カーネル Build Container Image Container Image docker image pull docker image push Dockerfile tag:latest tag:6.7 ・ ・ tag:latest tag:14.04 ・ ・ tag:latest tag:19.1 ・ ・ Ship
  6. Build、Ship、Run Build(構築)、Ship(共有)、Run(実行)はDockerが掲げるスローガンであり Dockerが提供する基本機能 19 コンテナエンジン(dockerd) ハードウェア pull コンテナー コンテナレジストリ (Docker

    Hub) CentOS リポジトリ Ubuntu リポジトリ Container Image push Nginx リポジトリ カーネル Run Build Container Image Container Image docker image pull docker image push Dockerfile tag:latest tag:6.7 ・ ・ tag:latest tag:14.04 ・ ・ tag:latest tag:19.1 ・ ・ Ship
  7. Build、Ship、Run Build(構築)、Ship(共有)、Run(実行)はDockerが掲げるスローガンであり Dockerが提供する基本機能 21 コンテナエンジン(dockerd) ハードウェア pull コンテナー コンテナレジストリ (Docker

    Hub) CentOS リポジトリ Ubuntu リポジトリ Container Image push Nginx リポジトリ カーネル Run Build Container Image Container Image docker image pull docker image push Dockerfile tag:latest tag:6.7 ・ ・ tag:latest tag:14.04 ・ ・ tag:latest tag:19.1 ・ ・ Ship
  8. ・コンテナのスケジューリング ・ローリングアップデート ・オートスケーリング ・死活監視 ・コンテナの自動修復 ・サービスディスカバリ ・ロードバランシング ・ログ管理 ・その他多彩なエコシステムとの連携 コンテナオーケストレーション

    ホストOS(ノード) ホストOS(ノード) ホストOS(ノード) Kubernetesクラスター コンテナ群 (アプリケーション群) コンテナ群 (アプリケーション群) コンテナ群 (アプリケーション群) ギリシャ語で「船の操舵手」などの意味 各ホストOS、コンテナ群をクラスター化して一括管理 主な役割 ・頻繁なアプリケーションのデプロイが可能なシ ステム基盤 ・無停止によるリリース、高可用なシステム基盤 ・負荷に応じた伸縮自在なシステム基盤 24
  9. コンテナの簡単な歴史 26 ・1979 ~ 2007年 コンテナの基本となる様々な技術がリリース ・2008年 LXC(Linux Containers)最初のLinuxコンテナマネージャー ・2013年

    DockerがOSSとして公開 コンテナ管理のエコシステムの充実 ・2015年 OCI(Open Container Initiative)発足 標準規格の策定が開始 Kubernetesリリース CNCF(Cloud Native Conputing Foundation)設立 ・2017年~ コンテナや周りのエコシステムの成熟