강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Devops & Infra

Docker virtualization technology for DevOps (Private Harbor Registry)

This course is a process of learning about container virtualization technology, one of the four components that make up Cloud Native Architecture. It is a learning process that understands the basic concepts of container virtualization, which is the best way to deploy and operate Microservice applications, and covers Docker technology, which is the most widely known container virtualization technology. In addition to theoretical learning about the essential content required to deploy and operate applications developed in MSA form, you can understand how actual Docker containers work through related practical examples. In this course, you can also learn about various elements such as Docker Security and Logging that have not been covered in other existing lectures, and in the final practical project, you can build services (Harbor + Argocd) that can be linked to Docker technology and deploy applications to practice the core operating environment required for DevOps.

(4.8) 21 reviews

482 learners

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

Reviews from Early Learners

What you will learn!

  • Docker container technology

  • Create Docker Image

  • Configuring Docker Registry

  • Multi-container management using Docker Compose

  • Docker Security

  • Analyzing Docker Log Files

  • Container technologies other than Docker

  • Docker Build for Multi-Platform

  • Setting up a Docker environment in CI/CD

  • Private Harbor Registry

  • Jenkins CI/CD Pipeline Integration

  • Kubernetes Deployment (Argocd)

How should applications developed with Microservice Architecture be deployed/operated? 🤔

Applications developed with Microservice Architecture must be deployed and operated using container virtualization technology. CNCF (Cloud Native Computing Foundation, https://www.cncf.io/ ), a subsidiary organization of Linux , defines microservices, container virtualization, CI/CD, DevOps, etc. as various software and infrastructure components used to build and run Cloud Native Application Architecture. Among them, it introduces a technology called container virtualization to run and operate the results developed as cloud native applications, and the most popularly known and used service in the field of container virtualization technology is the Docker service.

This lecture covers the core concepts required to understand Docker virtualization technology, the Docker Compose technology required to configure and manage multiple containers, security considerations when using container virtualization, and the linkage with CI/CD pipelines, as well as Docker Orchestration, and is structured to practice related example code.

Through various practical examples and toy projects, in addition to the core functions of Docker virtualization technology, we introduce how to containerize, manage, and operate a simple 3-tier structured application. Using the Orchestration tool included in Docker Desktop, we learn not only how to manage basic resources, but also how to perform scaling tasks and rolling updates for services.

The latter half of the lecture covers not only Docker's basic runtime and registry, but also how to use Docker through alternative technologies such as Podman or Harbor. The final project also introduces the process of deploying and operating through Jenkins, Kubernetes, and Argocd.

In this lecture, you will learn about the overall contents of container virtualization and how virtualization technology can be used to build IT infrastructure.

💡 Take your first step towards becoming a container virtualization expert in DevOps.

  • Understand container virtualization technology and learn how to deploy applications by separating them into multiple containers.

  • We use a variety of images to explain concepts and deliver content in an easy-to-understand manner.


  • This course is designed to allow you to combine theory and practice. It is not limited to theoretical lectures, but is designed to allow you to directly test the concepts explained in each section through practical training, and is designed to allow you to easily practice examples even if you do not have advanced knowledge of programming or infrastructure.



  • All hands-on examples are structured so that you can practice based on the content described in each section, and you can learn about the process of managing a 3-tier web application consisting of Frontend + Backend + Database using Docker and Docker Compose technology, using a simple Toy project as an example.

  • The basic web application is configured using React.js for the frontend service, Spring Boot for the backend service, and Mariadb for the database. However, rather than running a practical example based on an understanding of programming, it explains the example so that you can practice it with the content required for Docker virtualization technology.

Features of this course

📌 You can learn theoretical explanations and practical exercises on various elements of Docker virtualization technology, from basic concepts to core technologies required for operation.

📌 Using a simple web application, you can understand the environment that needs to be set for each container, and learn about Docker Compose and Docker Orchestration technologies required to configure and operate multiple containers.

📌 Each section provides explanations of the theory and practical examples, allowing students to run various examples in their own Docker environments.

📌 In addition to the basic functions of Docker, it also introduces technologies that can replace Docker technology, and how Docker can be used for CI/CD deployment automation.

📌 This lecture is for those who are new to container virtualization technology or have a basic understanding of the Docker environment. You can learn about methods for operating multi-containers, security elements required to use Docker virtualization technology, multi-platform builds, logging message processing, and the role and position of Docker in Cloud Native Architecture.

💡 From Beginner to Master

  • This course is designed to help you understand the basics of container virtualization, while also learning the essential technologies needed to deploy and operate web applications in a virtualized form.

  • We are learning about everything from creating simple Docker images and containers, to using Docker Compose to manage multiple containers, Docker Orchestration to manage containers on multiple hosts, and how to integrate with CI/CD.

  • In addition, it introduces the security aspects of Docker Images, building Docker images on multiple platforms, managing logging messages of Docker containers, and managed container technology for using containers in cloud environments.

  • This course is designed to be a final Capstone Project for all the courses you have studied, and to allow you to indirectly experience and practice the environment you work in through linking with various services consisting of web applications and open source.

I recommend this to these people

I want to level up as a DevOps engineer.

Developers/students interested in deploying and operating applications in a DevOps environment

I'm interested in container virtualization technology.
For those who are curious about how to operate an application developed with Microservice Architecture

I'm curious about the process for CD in the CI/CD pipeline.
I'm curious about using Docker for continuous integration and continuous deployment for application deployment.

💡 Anyone interested in container virtualization technology as well as deployment and operation of Microservice applications!

  • If you are curious about what steps are involved in continuous deployment after the application development process to deploy it to the production environment.

  • Anyone interested in container virtualization technology and wanting to grow as a DevOps engineer

  • Anyone interested in Docker Orchestration tools for multi-container operation and container resource management

  • Anyone who wants to operate a service by utilizing the Rolling Update and Rollback functions of containers even without using a specialized orchestration tool such as Kubernetes

After class

  • Understand container virtualization technology and learn how to manage multiple containers for application deployment.

  • Learn how to run and manage multiple containers at once using Docker Compose technology.

  • Using Docker Swarm technology, you will learn how to use basic Docker Orchestration tools and learn about the Rollback function as well as Rolling Update for containers.

  • By performing a security vulnerability check on Docker Images, you can use more secure Docker Images.

  • You will be able to understand and use container virtualization technologies other than Docker.

  • You can build a continuous delivery system using Docker in a CI/CD automated deployment pipeline.

  • You will learn how to run web applications in a virtualized service environment provided by cloud services.

  • You will also gain an understanding of what technologies are used to deploy Docker container images to orchestration tools to operate container virtualization more efficiently.

💡 Please write about the changes you will experience by taking this course.

  • This lecture will help you understand container virtualization technology.

  • Developers and those interested in development can understand if their applications can be run and operated in a virtualized environment.

  • You can learn about technologies and processing methods for operating various multi-containers.

  • You can get hands-on experience on how to apply Docker virtualization technology in a CI/CD environment.

Learn about these things.

Basic concepts and core technologies of Docker virtualization

In this lecture, we will practice basic image creation, container usage, volume and network usage for Docker virtualization, as well as Docker Compose and Docker Swarm for multi-container management, and introduce Docker security and logging processing methods.

Using Docker Virtualization in a CI/CD Environment

The main purpose of using Docker virtualization is to solve the limitations of the physical system environment and to easily operate and manage various applications and middleware. You can learn how to use Docker container virtualization technology in conjunction with the CI/CD environment as a way to automatically deploy these services.

Various practical examples

After the theoretical explanation of this lecture, we provide examples that you can practice based on the contents explained in each section. By executing the provided practice code in your own environment, you can learn more easily about the operation process of Docker containers. In addition to the basic services of Docker, you can also practice alternative technologies for Docker such as Private Registry Harbor and Podman in the lecture.

Capstone project (final practical project)

After completing all the theoretical lectures and practical learning, you are ready to perform the Capstone project in the final section. The Capstone project is structured so that you can learn the entire process of linking web applications to be automatically deployed in a CI/CD environment, linking with the open source Docker Registry, and managing resources using an orchestration tool.

Who created this course

  • Current ) CEO of NJ One Company

  • Current ) Associate Professor, Department of Information Security, Graduate School of International Information, Dongguk University

  • Former ) JP Mogan Chase AMJ Tech consultant (Japan)

  • Former ) Chief Engineer, Samsung SDS CMS Business Division

Things to note before taking the class

Practice environment

  • The lecture is based on MacOS. If you have Docker Desktop installed in a Windows 10 or Windows 11 environment, you can follow most of the practical examples.

  • In this lecture, we will practice running various Docker container images. We recommend that you prepare at least 8GB of memory (16GB or more recommended) and 100GB or more of free storage space before practicing.

  • In this lecture, we will use Visual Studio Code to check and modify some of the scripts and codes used in the practice.

  • We provide images in the Dind (Docker in Docker) format to practice the Docker Swarm environment by configuring various multi-hosts.

    • Dind images are provided by education providers in MacOS Intel chip, MacOS Apple chip, Windows 10, Windows 11, and Ubuntu versions. However, errors may occur in running the Dind images depending on the environment used by the student.


  • To configure and run a VM environment rather than using the Dind image for the practical environment used in this lecture, you can refer to the separately provided Inflearn lecture for free.

Learning Materials

  • The practical example code used in the lecture is shared through Github.

Player Knowledge and Notes

  • Basic knowledge of IT services

  • Understanding terms such as Client, Server, and Cloud

  • Basic understanding of web services and web applications (what they mean and how they work)

  • Windows environment users) CMD commands (dir, curl, ping, ipconfig, etc.)

  • (MacOS environment users) Terminal commands (ls, curl, ping, ifconfig, etc.)

  • (Common) Since we will be using VIM, a document editing tool for the Linux environment, in class, it would be more efficient to learn the basics of how to use it.

💡 You must have the following programs installed to run the practical examples used in this lecture.

  1. Practice environment

    • Operating System and Version (OS): Windows 10, Windows 11 available, MacOS Intel chip, MacOS Apple chip available

    • Tools to use: Install Docker Desktop for each operating system (the installation process is practiced in the lecture)

    • Editor: Visual Studio Code

    • PC specifications: CPU Intel i5+, memory 8GB+ (16GB or more recommended), disk 100GB+ are the minimum specifications to run the program.

  2. Learning Materials

    • The learning materials provided will include hands-on examples and PDF lecture notes, which will be available via Github.

    • It consists of 11 sections in total.

  3. Player Knowledge and Notes

    • Learning Difficulty: Beginner level course with basic knowledge of IT services and basic command usage in command prompt or terminal.


    • Please use the Q&A board to post questions about the lecture.

    • Updates to lecture content and practical examples will be shared in future update-related posts.

    • The copyright of the practical examples and lecture content used in this lecture belongs to the lecture provider. You are free to share the content and practical examples used in the lecture through the Internet, but if possible, please share them in advance and then make them public.


Recommended for
these people

Who is this course right for?

  • People interested in container virtualization technology

  • People interested in Cloud Native technologies

  • Person responsible for deployment and operation of MSA applications

  • Anyone who wants to apply container virtualization technology to a CI/CD environment

Need to know before starting?

  • Understanding IT Services

  • Understanding Cloud Services

  • Windows environment users) CMD commands (dir, curl, ping, ipconfig, etc.)

  • (MacOS environment users) Terminal commands (ls, curl, ping, ifconfig, etc.)

Hello
This is

29,298

Learners

1,560

Reviews

1,352

Answers

4.8

Rating

8

Courses

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

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

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

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

 

 

  • ) 엔제이원컴퍼니 대표 

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

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

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

 

 

Curriculum

All

113 lectures ∙ (20hr 31min)

Published: 
Last updated: 

Reviews

All

21 reviews

4.8

21 reviews

  • parksangdonews8226님의 프로필 이미지
    parksangdonews8226

    Reviews 17

    Average Rating 4.8

    5

    100% enrolled

    Ultimately, this is a lecture that will teach you a lot about the spectrum that developers need to know. It seems to cover everything beyond writing, building, and running code. Recently, I studied Linux and installed Gitlab for management, and I experienced problems that I encountered naturally while using Docker in the process of building CI/CD. I hope you don't miss this lecture because it sufficiently explains the things I experienced. There are many Docker lectures, but they end after running them, and there are many CI/CD lectures, but they end after installing and running them. These days, there are so many books and lectures that are popular contents such as GitHub build/deployment execution... ... After about a month of many attempts, learning, trial and error, and concerns, I am in the process of spending a lot of time on automation with the thought that even a single developer, not an organization, should have a 'system'. This lecture was a great help in that process. Recently, from domain settings to installing and setting up Gitlab, Gitlab Runner, Prometheus, Grafana, etc., I had to install and specify the path for SSL communication, verify and issue the certificate, and renew it here and there... However, this is because the domain certificate is valid for 3 months and the SSL certificate is valid for up to 1 year, so there is no problem using it right away, but after that, it will expire and there will be problems, or if it is actually in operation, there will be a downtime accident, or the key will be lost and have to be set up again. I have to study and learn more about certificates, and if possible, I am thinking of registering a shell program for automatic renewal as a cron~~ However, if there is a supplementary lecture on certificate renewal and automation, it would be good. ^^ ㅎㅎ It is more unstable than a bank certificate.. If I had to come here without knowing what to study on my own, it would have taken several months, but thanks to the excellent lecture, I feel confident that I can finish it in a few days. I plan to spend the remaining weekend practicing applying it to an actual server. The story behind development that developers must know... Everyone, this is a great lecture.~~~~ Thank you. ^^

    • sorayeon님의 프로필 이미지
      sorayeon

      Reviews 81

      Average Rating 5.0

      5

      30% enrolled

      The teacher's lectures are always right.

      • eunhyeko7647님의 프로필 이미지
        eunhyeko7647

        Reviews 1

        Average Rating 5.0

        5

        100% enrolled

        • eomsi4706님의 프로필 이미지
          eomsi4706

          Reviews 2

          Average Rating 5.0

          5

          30% enrolled

          • newbeginner님의 프로필 이미지
            newbeginner

            Reviews 36

            Average Rating 4.8

            5

            100% enrolled

            $68.20

            Dowon Lee's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!