Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
Programming

/

Devops & Infra

DevOps 向けの Docker 仮想化技術 (Private Harbor Registry)

この講義は、Cloud Native Architecture を構成する 4 つの構成要素のうち、コンテナ仮想化技術について学習するプロセスです。 マイクロサービス アプリケーションをデプロイおよび運用するための最良の方法であるコンテナ仮想化という技術の基本的な概念を理解し、コンテナ仮想化技術の中で最も広く知られている Docker 技術について取り上げる学習プロセスです。 MSA 型式で開発されたアプリケーションをデプロイおよび運用するために必要な必須の内容について、理論学習だけでなく、関連する実習例を通じて、実際の Docker コンテナがどのように動作するかを理解できます。 このコースでは、既存の他の講義では取り上げられていない Docker Security や Logging などのさまざまな要素についても学習できます。 最終的な実習プロジェクトでは、Docker 技術と連携できるサービス (Harbor + Argocd) を構築し、アプリケーションをデプロイすることで、DevOps を適用する際に必要な重要な運用環境について実習できます。

  • kenneth
컨테이너
데브옵스
가상화
이론 실습 모두
교수님 강의
Docker
CI/CD
Virtualization
MSA

学習した受講者のレビュー

こんなことが学べます

  • Docker コンテナ技術

  • Docker イメージの作成

  • Docker レジストリの構成

  • Docker Compose を使用したマルチコンテナの管理

  • Docker セキュリティ

  • Docker ログ ファイルの分析

  • Docker 以外のコンテナ技術

  • マルチプラットフォーム向けの Docker ビルド

  • CI/CD での Docker 環境の構築

  • プライベート ハーバー レジストリ

  • Jenkins CI/CD パイプラインの連携

  • Kubernetes 配布 (Argocd)

Microservice Architectureで開発されたアプリケーションは、どのように展開/運用する必要がありますか? 🤔

Microservice Architectureで開発されたアプリケーションは、コンテナ仮想化技術を使用して展開および運用する必要があります。 Linux の傘下の機関である CNCF (Cloud Native Computing Foundation, https://www.cncf.io/ ) では、Cloud Native Application Architecture を構築および実行するために使用するさまざまなソフトウェアおよびインフラストラクチャコンポーネントとして、マイクロサービス、コンテナ仮想化、CI /CD、DevOpsなどを定義しています。その中でクラウドネイティブアプリケーションとして開発された成果物を実行して運営するためにコンテナ仮想化という技術を紹介していますが、まさにこのコンテナ仮想化技術分野で最も一般的に知られていて使用されているサービスがDockerサービスです。

このレッスンでは、Docker仮想化技術を理解するために必要な重要な概念から、マルチコンテナを構成および管理するために必要なDocker Compose技術、コンテナ仮想化を使用する際に考慮すべきセキュリティ部分、およびCI / CDパイプラインとの連携部分だけでなく、Docker Orchestrationの部分について学習し、関連するサンプルコードを練習するように構成しました。

様々な実践例やToyプロジェクトを通じて、Docker仮想化技術に重要な機能に加え、シンプルな3-tier構造のアプリケーションをどのようにコンテナ化して管理し運営すればよいかについても紹介しており、Docker Desktopに含まれるOrchestrationツールを利用して、基本的なリソースを管理するだけでなく、サービスのスケーリング作業のローリング更新方法についても学習しています。

講義の後半では、Dockerの基本的なRuntimeとRegistryのほか、PodmanやHarborなどの代替技術を通じてDockerを使用する方法についても取り上げており、最終プロジェクトではJenkinsとKubernetesとArgocdを通じて配布運営する過程についても紹介しています。

今回の講義を通じて、コンテナ仮想化の全体的な内容と、ITインフラストラクチャを構築するために仮想化技術をどのように活用できるかについて学んでください。

💡DevOpsのコンテナ仮想化の専門家に向けた第一歩を踏み出してください。

  • コンテナ仮想化技術を理解し、アプリケーションを複数のコンテナに分割してデプロイする方法を学びます。

  • 概念的な説明のために様々なイメージを活用して理解しやすく内容を伝えています。


  • 本講義では、理論と実習を一緒に並行できるように構成しました。理論的な講義にとどまらず、各節で説明した概念については必ず実習過程を通じて直接テストしてみることができるように構成し、プログラミングやインフラに関する高い知識がなくても簡単に例を実習してみるように構成しました。



  • すべての練習の例は、各セクションで説明されている内容に基づいて練習するように構成されています。管理するプロセスについて学ぶことができます。

  • 基本的なWebアプリケーションは、Frontendサービスの場合はReact.js、Backendサービスの場合はSpring Boot、DatabaseはMariadbを使用して構成されています。しかし、プログラミングの理解に基づいて実践例を実行するのではなく、Docker仮想化技術に必要な内容で例を実習できるように説明しています。

この講義の特徴

📌Docker仮想化技術の基本的な概念から、運用に必要なコア技術まで、さまざまな要素について理論的な説明と実践を一緒に実行できます。

📌簡単なWebアプリケーションを使用して各コンテナごとに設定する必要がある環境を理解し、マルチコンテナを構成して運用するために必要なDocker ComposeやDocker Orchestration技術についても学習できます。

📌各セクションでは、理論に説明と実践例をまとめて提供することで、受講生の方々は直接自分のDocker環境で様々な例を実行してみることができます。

📌基本的なDockerの機能に加えて、Docker技術に代わる技術についても紹介しており、CI/CD配布自動化のためにDockerがどの部分で使用できるかも紹介しています。

📌本講義は、コンテナ仮想化技術に初めて触れたり、基本的なDocker環境について理解している方のために、マルチコンテナを運用する方法と、Docker仮想化技術を使用するために必要なセキュリティな要素、マルチプラットフォームビルド、ログメッセージの処理 そして、Cloud Native Architecture での Docker の役割や場所などについても一緒に学習できます。

💡 From Beginner to Master

  • このレッスンでは、コンテナ仮想化の基本的な内容を理解しながら、Webアプリケーションを仮想化形式でデプロイして運用するために必要な必要な技術まで学習できるように構成されています。

  • 簡単なDockerイメージ生成とコンテナの生成から、マルチコンテナを管理するためのDocker Composeの使用、マルチHostでコンテナを管理するためのDocker Orchestration、CI/CDとの連携について学習しています。

  • さらに、Docker Imageのセキュリティ要素、マルチプラットフォームでのDockerイメージの構築、Dockerコンテナのロギングメッセージ管理、クラウド環境でのコンテナ使用のためのマネージドコンテナ技術についても紹介しています。

  • 本講義では、学習したすべてのコースの仕上げCapstone Projectとして、Webアプリケーションとオープンソースで構成されている様々なサービスとの連携を通じて、実務で作業している環境について間接的に経験し実践してみることができるように構成しました。

こんな方におすすめです

DevOpsエンジニアでレベルアップしたいです。

DevOps環境でアプリケーションのデプロイと運用に関心を持つ開発者/学生

コンテナ仮想化技術に興味があります。
Microservice Architectureで開発されたアプリケーションをどのように運営するのか疑問に思いました

CI/CDのパイプラインでCDのプロセスが気になります。
アプリケーションをデプロイするための継続的な統合と継続的なデプロイのためにDockerを使用することについて疑問に思います。

💡コンテナ仮想化技術だけでなく、Microserviceアプリケーションのデプロイと運用にも興味がある方!

  • アプリケーションの開発プロセス後に継続的な展開でどのような手順を運用環境に展開するのか疑問に思いました

  • コンテナ仮想化技術に関心を持って、DevOpsエンジニアで聖定したい方

  • マルチコンテナ運用およびコンテナリソース管理のためのDocker Orchestrationツールに興味がある人

  • KubernetesなどのプロフェッショナルなOrchestrationツールを使用していなくても、コンテナのRolling UpdateおよびRollback機能を活用してサービスを運営したい方

受講後は

  • コンテナ仮想化技術を理解し、アプリケーションを展開するためにマルチコンテナを管理する方法を学びます。

  • Docker Composeテクノロジを使用して複数のコンテナを一度に実行して管理する方法を学びます。

  • Docker Swarmテクノロジを使用して、基本的なDocker Orchestrationツールの使い方を学び、コンテナのRolling Updateだけでなく、Rollback機能についても知ることができます。

  • Docker Imageのセキュリティ脆弱性チェックにより、より安全なDocker Imageを使用できるようになります。

  • Docker以外のコンテナ仮想化技術を理解して使用できるようになります。

  • CI/CDオートメーション配布パイプラインでDockerを使用して継続的な配布システムを構築できます。

  • Webアプリケーションをクラウドサービスが提供する仮想化サービス環境で運用する方法を学びます。

  • コンテナ仮想化をより効率的に実行するためのOrchestrationツールにDockerコンテナイメージを展開するためにどのテクノロジが使用されているかを理解することができます。

💡この講義を受講すると得られる変化について書いてください。

  • このレッスンでは、コンテナ仮想化技術について理解することができます。

  • 開発者と開発に興味がある人は、自分のアプリケーションを仮想化環境で実行して運用できるかどうかを理解できます。

  • さまざまなマルチコンテナを運営するための技術と処理方法について学習できます。

  • CI/CD 環境で Docker 仮想化技術をどのように応用すればよいかを実践してみることができます。

このような内容を学びます。

Docker仮想化の基本概念とコア技術

本講義では、Docker仮想化使用のための基本的なイメージ生成、コンテナ使用、ボリュームとネットワークの使い方だけでなく、マルチコンテナ管理のためのDocker ComposeとDocker Swarmについても実習しており、DockerセキュリティやLogging処理方法などについても紹介しています。 。

CI/CD環境でのDocker仮想化の使用

Docker Virtualizationを使用する最大の目的は、物理的なシステム環境が持つ制約的な問題を解決し、さまざまなアプリケーションやミドルウェアを簡単に操作および管理することです。これらのサービスを自動化して展開するための方法として、CI / CD環境と連携してDockerコンテナ仮想化技術の使用方法を学ぶことができます。

さまざまな練習の例

本講義の理論的な説明の後には、各セクションで説明されている内容をもとに練習することができる例を一緒に提供しています。提供される実践コードを自分の環境で直接実行することで、Dockerコンテナの動作過程についてより簡単に学習できます。講義では、Dockerの基本サービスに加えて、Private Registry HarborやPodmanなどのDocker代替技術についても実践してみることができます。

Capstone project (最終実習プロジェクト)

すべての理論的なレッスンと実践的な学習が完了したら、最後のセクションでCapstoneプロジェクトを実行する準備が整いました。 Capstone projectでは、WebアプリケーションをCI/CD環境で自動化展開できるように連携するとともに、オープンソースで提供されるDocker Registryとの連携、そしてOrchestrationツールを利用してリソースを管理してみる全体の過程について学習できるように構成されています。

この講義を作った人

  • )エンジェイワンカンパニー代表

  • )東国大学国際情報大学院情報保護学科大宇教授

  • ) JP Mogan Chase AMJ Tech consultant (日本)

  • )サムスンSDS CMS事業本部責任エンジニア

受講前の注意

練習環境

  • 講義はMacOSで説明します。 Windows 10、Windows 11環境と呼ばれるDocker Desktopがインストールされている場合は、ほとんどの練習の例に従うことができます。

  • 講義では、様々なDockerコンテナイメージを起動しながら実習を進めています。最低8GB以上のメモリ(16GB以上推奨)と100GB以上の空き容量を用意し、練習をお勧めします。

  • レッスンでは、練習に使用されるいくつかのスクリプトとコードについて、Visual Studio Codeを使用して確認して修正しています。

  • さまざまなマルチホストを構成してDocker Swarm環境を実践するために、Dind(Docker in Docker)形式のイメージを提供しています。

    • Dind イメージは教育プロバイダーによって MacOS Intel chip、MacOS Apple chip、Windows 10、Windows 11、Ubuntu バージョンで提供しています。ただし、受講生がご使用の環境によっては、Dindイメージの実行にエラーが発生することがあります。


  • このレッスンで使用される実践的な環境のためにDindイメージを使用するのではなく、VM環境を構成して実行できるように、別途提供されているInflearnレッスンを無料で参照できます。

学習資料

  • レッスンで使用されている実習サンプルコードはGithubを介して共有されます。

選手の知識と注意事項

  • ITサービスの基本的な知識

  • Client、Server、Cloudなどの用語の理解

  • WebサービスとWebアプリケーションの基本的な理解(意味と操作プロセス)

  • Windows環境ユーザー) CMDコマンド(dir、curl、ping、ipconfigなど)

  • MacOS 環境ユーザー) Terminal コマンド (ls、curl、ping、ifconfig など)

  • 共通)Linux環境のドキュメント編集ツールであるVIMを授業時間に使用するため、基本的な使い方を習得すれば講義を受講するのにより効率的であるようです。

💡このレッスンで使用される実践例を実行するには、次のプログラムがインストールされている必要があります。

  1. 練習環境

    • オペレーティングシステムとバージョン(OS):Windows 10、Windows 11対応、MacOS Intel Chip、MacOS Apple Chip対応

    • 使用ツール:各オペレーティングシステムに適したDocker Desktopのインストール(レッスンでのインストールプロセスについて練習)

    • エディター: Visual Studio Code

    • PC仕様:CPU Intel i5+、メモリ8GB+(16GB以上を推奨)、ディスク100GB+がプログラム駆動用の最小仕様です。

  2. 学習資料

    • 提供する学習資料は、実習例とPDF教案はGithubを通じて提供される予定です。

    • 完全な11セクションで構成されています。

  3. 選手の知識と注意事項

    • 学習難易度:初心者向けのITサービスに関する基本的な知識とコマンドプロンプトまたは端末での基本的なコマンドの使用


    • 講義に関する質問について質問掲示板を活用してください。

    • レッスンコンテンツと実践例のアップデートは、今後のアップデートに関する記事で共有します。

    • この講義で使用されている実践例と講義の内容については、講義プロバイダに著作権があります。講義で使用された内容と実習例をインターネットを通じて共有することは自由ですが、可能であれば事前に共有後に公開してください。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • コンテナ仮想化技術に興味のある方

  • Cloud Native テクノロジーに興味のある方

  • MSA アプリケーションの配布と運用を担当する人

  • CI/CD 환경にコンテナ仮想化技術を適用したい人

前提知識、
必要でしょうか?

  • IT サービスの理解

  • クラウド サービスの理解

  • Windows 環境ユーザー) CMD コマンド (dir、curl、ping、ipconfig など)

  • MacOS 環境ユーザー) ターミナル コマンド (ls、curl、ping、ifconfig など)

こんにちは
です。

29,178

受講生

1,550

受講レビュー

1,352

回答

4.8

講座評価

8

講座

저는 IT 엔지니어입니다. 언젠가 직업란에 "회사원?", "개발자?", "강사?" 어떤 단어를 선택해야 할 지 고민이 되었던 때가 있었습니다. 그러다가, IT 엔지니어라는 표현이 제가 잘 어울리는 직업명이라는 생각이 들어 지금까지도 직업란에는 "IT 엔지니어"라고 적고 있습니다.

직업이라는 것은 자신의 일을 나타내는 것이고, 일이라는 것은 재미있고, 도움이 되는 일이면 좋겠다는 생각을 가지고 있습니다. 누구나 다 원하는대로 일을 하며 살수는 없지만, 저는 제가 하는 있는 이 일을 좋아하는 있고, 잘하고 싶어하는 사람입니다. 개발자로써, 강사로써, 컨설턴트로써의 역할을 해 오면서, 매번 새롭게 출시되고 변화하는 IT 신기술을 따라가기에 급급하지만, 그래도, 남들보다 조금이라도 먼저 접하고, 전파하고, 사용하고 싶은 사람 중 한명입니다. 

최근 관심을 가지고 있는 분야는 온라인 교육 컨설팅입니다. 그리고 관심있는 기술은 Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes 등입니다. 이러한 기술은 실제로 강의도 하고 있고 업무에 적용해서 사용도 하고 있습니다. 하지만, 워낙 방대한 주제이다 보니, 아직까지도 계속 공부하고 있습니다.

머리속에 가지고 있는 것은 진정한 지식이 아니라고 합니다. 저는 제가 가진 지식과 경험을 다양한 방벙을 통해 공유하려 합니다. 그리고, 새로운 분야, 새로운 기술에 계속 도전하고 있는 IT 엔지니어가 될 것입니다.  

 

 

  • ) 엔제이원컴퍼니 대표 

  • ) 동국대학교 국제정보대학원 정보보호학과 대우교수

  • ) JP Morgan Chase AMJ Tech consultant (일본)

  • ) 삼성 SDS CMS 사업본부 책임 엔지니어

 

 

カリキュラム

全体

113件 ∙ (20時間 31分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

21件

4.8

21件の受講レビュー

  • Sang Do Park님의 프로필 이미지
    Sang Do Park

    受講レビュー 17

    平均評価 4.8

    5

    100% 受講後に作成

    궁극적으로 개발자가 알아야 할 스펙트럼에서 많은 부분을 알 수 있게 되는 강의입니다. 코드를 작성하고 빌드하고 실행해보는 것을 넘어, 그 다음의 모든 과정을 다루는 듯 합니다. 최근 리눅스를 공부하고 관리를 위해 Gitlab 을 직접 설치해보고, CI/CD 를 구축하는 과정에서 자연스럽게 도커를 사용하는데 만나게 되는 문제들을 해결하기 위해 겪었던 일들이 이 강의에서 이미 놓치지 말기 바란다며 충분한 설명이 되어 있더군요. 도커 강의 많아도 실행해보고 끝나거나 CI/CD 강의 많아도 설치와 실행해보고 끝나는 경우도 많고, 흔히 깃허브 빌드/배포 실행으로 어찌 보면 유행하는 내용으로 책과 강의가 넘치는 요즈음... ... 근 한 달 여간 많은 시도와 학습과 시행착오와 고민을 겪으며 조직이 아닌 한 명의 개발자라도.. '시스템' 이 있어야 한다는 마음으로 자동화에 많은 시간을 들여 만드는 과정에 있는데... 이 강의가 그 과정에 너무나 큰 도움이 되었습니다. 최근 도메인 설정부터, Gitlab, Gitlab Runner, 프로메테우스, 그라파나 등을 설치하고 설정하는 과정에서 강의 중에 언급된 SSL 통신을 위한 인증서 설치와 경로 지정, 인증서 확인과 발급, 갱신이 곳곳에 해야 되더군요... 그런데 이것이 도메인 인증서는 3개월, SSL 인증서는 최대 1년이라는데, 당장 사용하는데는 문제가 없을 정도지만, 이후에는 만료가 되어 문제가 생기거나 실제 운영중이라면 중단 사고가 발생하거나, 키를 분실하여 새로 설정해야 되는 경우가 생길 것 같습니다. 인증서에 관하여 추가로 학습하고 배워야 하는 건 제 몫이고, 가능하다면 자동 갱신을 위한 쉘 프로그램을 크론으로 등록해볼까 하는 생각을 합니다~~ 만 ~ 혹시 보강으로 인증서 갱신과 자동화에 대한 강의가 있다면 좋겠습니다. ^^ ㅎㅎ 은행 공인인증서보다 더 불안하네요.. 혼자 무엇을 공부해야 하는지 모르는 상태에서 여기까지 와야 했다면 수 개월은 걸렸을텐데, 훌륭한 강의 덕분에 몇 일만에 끝낼 수 있을 거 같다는 자신감이 생겼습니다. 남은 주말은 실제 서버에 적용해보는 실습을 하고자 합니다. 개발자라면 꼭 알아야 할 개발 그 이후의 이야기... 여러분 여기가 명강의 입니다.~~~~ 감사합니다. ^^

    • 소라연님의 프로필 이미지
      소라연

      受講レビュー 81

      平均評価 5.0

      5

      30% 受講後に作成

      선생님의 강의는 언제나 옳습니다.

      • 엄상인님의 프로필 이미지
        엄상인

        受講レビュー 2

        平均評価 5.0

        5

        30% 受講後に作成

        • 백수취준생님의 프로필 이미지
          백수취준생

          受講レビュー 36

          平均評価 4.8

          5

          100% 受講後に作成

          • javarunner님의 프로필 이미지
            javarunner

            受講レビュー 66

            平均評価 5.0

            5

            30% 受講後に作成

            ¥10,342

            kennethの他の講座

            知識共有者の他の講座を見てみましょう!

            似ている講座

            同じ分野の他の講座を見てみましょう!