본문 바로가기

강의/docker

Docker 사용

도커란?

도커란 원하는 프로그램을 쉽게 실행하기 위한 플랫폼입니다.

 

도커가 존재하기 전에는 어떤 어려움이 있었는지

도커가 이러한 문제를 어떻게 해결 하였는지를 살펴보도록 하겠습니다.

 

Docker가 없이 실제 서비스를 운영할 때는 아래와 같은 어려움이 있었습니다.

서버에서 작성한 코드를 실행하기 위해서는 다양한 작업을 해주어야 합니다.
    - os 설치, 실행환경 세팅(java, python 등), 어플리케이션 코드(혹은 빌드) 다운로드, 필요한 다른 코드 다운로드(library) 등등의 과정이 필요합니다.

서버를 운영한다는 것은 1)보안 결함이 없어야 하고 2) 필요할 때 새로운 코드나, 라이브러리 추가가 가능해야 합니다.
많은 수의 요청을 처리하기 위해서는 많은 수의 서버에 대해서 운영을 해주어야 합니다.
    - 실제 서비스를 제공하는 서버의 경우 안정성을 위해 최소 2대에서 많게는 100+이상의 서버를 관리하게 됩니다.

서비스를 운영하다 보면 다양한 요청이 들어올 수 있습니다.
    - ubuntu말고 centos 서버를 사용해보고 싶어요!
    - python3.8에서 python3.9로 업데이트 하고 싶어요!
    - 새로운 서비스는 Java로 만들어 보고 싶어요!



서비스가 커지고, 서버가 늘어나면 어플리케이션들을 원하는 대로 실행하는 것의 난이도가 기하급수적으로 상승합니다.
    - 각 상황에 따른 스크립트를 작성하고. 모든 서버에서 원하는 상태를 만들어주어야 하기 때문입니다.

 

Docker는 이러한 어려움을 어떻게 해결하였을까?

- 문제 정의) 원하는 프로그램을 실행하는 게 어렵다!
    - 서비스를 운영하기 위해서 단순히 코드를 짜는 것뿐만 아니라 서버도 운영을 해주어야 한다. 그런데 서버를 운영하는건 점점 복잡해진다.
- 해결 방안) 서버 운영에서 인프라 관리와 어플리케이션 작성을 분리하면 어떨까?
    - 실행환경, 실행하는 코드, 필요한 라이브러리, 설정 파일을 한곳에 정의해두면 어떨까? ⇒ **도커 이미지**
    - 서버에서는 간단하게 이미지를 가지고 실행만 시키자!
- 이런 패러다임을 적용시키기 위해서 해결해야 할 3가지 문제

1. 이미지를 생성하는 법
    👉 일관성 있게 이미지를 만들 수 있고, 어플리케이션을 실행하는 데 필요한 모든 것을 설정할 수 있는 이미지
    
2. 이미지를 공유하는 법
    👉 이미지가 어디에서든 잘 전달할 수 있게 만들어 필요한 곳에서 사용할 수 있게 한다.
    
3. 이미지를 실행하는 법
    👉 일관성있게 이미지를 실행할 수 있다.

 

 

도커 사용을 위한 환경 세팅


1. 도커 다운로드

아래의 링크에서 도커를 다운로드 받습니다.

https://www.docker.com/get-started

 

Developers - Docker

DockerCon 2022 Don't miss it - register now for May 10th! DockerCon is a free, immersive online experience complete with product demos, breakout learning tracks, panel discussions, hacks & tips, deep dive technical sessions from Docker experts, the develop

www.docker.com

 

 

2. 대시 보드 확인

도커 대시보드를 확인하면 왼쪽 아래 녹색 상태가 표시되는데 세팅이 잘 되었구나 라는 것을 알 수 있습니다.

 

3. 터미널에서 커맨드로 확인

1. terminal을 열고 docker라고 명령어를 쳤을 때 설명들이 출력되는 것을 확인합니다.

 

2. "docker ps" 명령어를 쳤을 때, 아래와 같은 테이블이 나타나는 것을 확인하면 준비가 완료된 상태입니다.

docker ps

 

 

자 이제 도커를 이용해 볼 차례입니다!

다음 포스팅을 통해 도커 사용법을 알아보겠습니다.

'강의 > docker' 카테고리의 다른 글

Flask 어플리케이션을 docker로 실행  (0) 2022.05.01
Docker를 실행해보자  (0) 2022.05.01