ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker 기본
    Cloud/Docker 2021. 4. 7. 14:39

    본 글은 "따라하며 배우는 도커와 CI환경" 강좌를 토대로 작성되었습니다.

     

    도커를 쓰는 이유? → 어떠한 프로그램을 다운 받는 과정을 굉장히 간단하게 만들기 위해서다.

     

    도커 없이 프로그램을 다운 받을 때, 먼저 installer를 다운 받고 installer 실행 후 프로그램 설치가 완료된다.

    하지만 인스톨러를 실행하는 가운데 에러가 발생하기도 한다.

    갖고 있는 서버와 패키지 버전, 운영체제(맥, 리눅스, 리눅스 안에서도 우분투나 centos 등등)에 영향을 많이 받기 때문이다.

    이러한 문제를 해결하기 위해 설치 과정이 복잡해지는데 이를 단순하게 만드는 것이 도커다.

     

     

    1. 도커 없이 Redis 설치하기

    Redis 공식 홈페이지에 있는 설치를 위한 명령어이다.

    컴퓨터에 wget이 설치되어 있지 않아 첫 줄부터 에러가 발생한다.

     

     

    2. 도커로 Redis 설치하기

    바로 Redis 설치가 진행된다!

     

     

    도커란 무엇인가?

    컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구이며, 컨테이너 기반의 오픈소스 가상화 플랫폼이며 생태계다.

     

    컨테이너란?

    1. 다양한 프로그램, 실행 환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다.

    2.물건을 손쉽게 운송해주는 것처럼 프로그램을 손쉽게 이동 배포 관리를 할 수 있게 해준다. AWS, Azure, Google Cloud등 어디서든 실행 가능하게 해준다.

    3. 코드와 모든 종속성을 패키지화하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위

    = 프로그램 배포, 관리, 실행을 간단하고 편리하게 해준다.

     

    도커 이미지란?

    코드, 런타임. 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하는 가볍고 독립적이며 실행 가능한 소프트웨어 패키지다.

     

    이미지는 런타임에 컨테이너가 되고, 도커 컨테이너의 경우 도커 엔진에서 실행될 때 이미지가 컨테이너가 된다. 컨테이너화된 소프트웨어는 인프라에 관계없이 항상 동일하게 실행된다. 

    컨테이너는 소프트웨어를 환경으로부터 격리시키고 개발과 스테이징의 차이에도 불구하고 균일하게 작동하도록 보장한다.

    도커 이미지는 프로그램을 실행하는데 필요한 설정이나 종속성들을 갖고 있고, 도커 이미지를 이용하여 컨테이너를 생성하며, 도커 컨테이너는 이미지의 인스턴스이며 프로그램을 실행한다.

     

     

    도커 사용 시 흐름 

    1. 도커 클라이언트에 docker run hello-world 입력. 도커 클라이언트가 도커 서버로 요청을 보낸다.

    2. 서버가 hello-world 이미지가 로컬에 cache 되어 있는지 확인.

    3. 없으면 Unable to find image~ 라는 문구 표시 후 Docker Hub로 가서 이미지가 있으면 가져와 로컬에 cache로 보관한다.

    4. 해당 이미지를 이용하여 컨테이너를 생성한다. 

    5. 생성된 컨테이너는 이미지에서 받은 설정이나 조건에 따라 프로그램 실행.

     

     

    이미지로 컨테이너 만드는 순서

    1. 도커 클라이언트에 docker run <이미지이름> 을 입력한다.

    이미지는 컨테이너 시작 시 실행되는 명령어(run kakaotalk), 파일 스냅샷(디렉토리나 파일을 카피한 것) 을 포함한다.

    2. 도커 이미지에 있는 파일 스냅샷을 컨테이너의 하드디스크에 옮겨준다.

    3. 이미지에서 가지고 있는 명렁어를 이용해서 카카오톡을 실행시켜준다.

     

     

Designed by Tistory.