본문 바로가기
IT 톺아보기/CICD

Docker?

by 파초우 2022. 5. 29.
반응형

컨테이너를 통해 응용 프로그램을 쉽게 배포 및 실행할 수 있도록 하는 도구이며 컨테이너 기반 오픈소스 가상화 플랫폼이다.

컨테이너?

-> 일상에서 컨테이너에 다양한 제품군을 넣고 운반을 쉽게 할 수 있다.
-> 이처럼 서버에서의 컨테이너는 응용프로그램을 넣고 손쉽게 설치, 실행할 수 있게 하는 것 (플랫폼에 구애받지 않고 사용할 수 있다!!)

도커 이미지와 컨테이너 정의

-> 코드와 모든 종속성을 패키지화하여 다른 환경에서 빠르고 안정적으로 실행될 수 있도록 해주는 소프트웨어 표준
-> 컨테이너 이미지? 응용 프로그램을 실행하는 데 필요한 모든 것을 포함, 설정값 종속성들을 포함하고 있다고 생각하면 됨
-> 이미지 안에 여러 컨테이너가 쌓여 있는 구조라고 생각하면 됩니다.

도커 흐름

-> 도커 CLI에 커맨드 입력
Ex) docker run hello-world
이미지 Cache 저장소에 존재하는지 확인

Unable to find image ‘hello-world:latest’ locally
latest: Pulling from library/hello-world

없으면, 도커 허브에 보관된 이미지들에서 가져옴

Docker Container??

-> 이전엔 하나의 서버가 하나의 용도
요즘엔 하이퍼 바이저로 인해 VM을 이용하여 서버를 나누어서 사용
하이퍼 바이저, 호스트형 하이퍼 바이저
하이퍼 바이저 기반의 VM은 하드웨어 위에 OS가 존재하지 않음(Guest OS만 존재)
도커의 경우에는 Guest OS도 없음
각 코어마다 독립적으로 운영

이미지로 컨테이너 만들기

-> 이미지는 응용 프로스램을 실행하는데 필요한 모든 것을 포함해야함
-> 시작시 실행 될 명령어(run kakaotalk), 파일 스냅샷(카카오톡 파일)
이미지로 컨테이너 만드는 순서
1. Docker 클라이언트에서 docker run <이미지>
2. 도커 이미지에 있는 파일 스냅샷을 하드 디스크에 옮겨줌

도커 이미지에서 COPY 할 때 같은 이름의 파일이 컨테이너 안에 존재하면 덮어쓰기가 되어버림 -> 그래서 work dir을 생성해줌 (중복방지)

반응형