[도커] 도커 공식문서 읽어보기

김정연·2024년 10월 1일
1

새로운 사이드프로젝트를 시작하면서 데이터베이스를 도커를 통해 서버로 올려보려고 한다.
근데 도커를 전혀 몰라서 공식문서로 기본 개념공부를 해본다.

  1. 컨테이너란?
    컨테이너는 각 앱의 구성요소에 대한 격리된 프로세스이다. 즉 프론트, 백엔드, 데이터베이스 세가지로 격리되어 각각의 컨테이너에서 실행된다. 그래서 버전관리, 환경 충돌 문제를 해결할 수 있다.
    여기서 말하는 버전과 환경은 java를 여러버전으로 쓸 때 각 컨테이너는 본인의 java만 쓰기 때문에 충돌이 없다고 하는 것이다. 또 시스템 운영체제와는 별도로 컨테이너가 작동하기 때문에 어디서든 동일한 환경으로 작업이 가능하다.

만약에 새 팀원이 Docker로 프로젝트를 설정한다면?

버전관리를 도와준다고 해서 구체적으로 알아봤다.

  • 프로젝트 클론 (깃으로 코드 클론)
  • 도커 설치
  • Docker Compose로 프로젝트 실행
    프로젝트에는 docker-compose.yml파일이 있다. 프론트, 백엔드, 이비 등을 정의한 파일로 팀원이 따로 설정할 필요 없이 docker-compose로 컨테이너를 한번에 실행할 수 있다.
  • localhost:3000 실행

이런식으로 도커가 모든 팀원간의 프로젝트를 같은 개발환경에서 쓸 수 있게 도와준다.

  1. VM
    VM은 가상컴퓨터라고 생각하면 된다. 가장 와닿는 예는 VM = ec2 인스턴스였다. 즉 클라우드 서비스는 물리적인 서버 대신 가상 머신을 사용해 컴퓨터 자원을 제공하는데 aws에서는 웹사이트, 디비, 애플리케이션 서버 등 vm(인스턴스)를 생성하고 vm의 사양을 조정할 수 있다고 생각하면 된다.

또 하나의 vm에서 발생한 문제가 다른 vm에 영향을 미치지 않고 물리적인 서버 하나에서 여러 vm을 실행할 수 있기 때문에 하드웨어 자원의 효율성이 좋다는 장점이 있다.

  1. 이미지
    컨테이너 이미지는 컨테이너를 실행하는데 필요한 모든파일, 바이너리, 라이브러리 구성을 포함한 패키지이다.
    컨테이너 이미지는 레이어로 구성되어있는데 뜻은 여러단계로 이루어진 구조를 갖고 있다는 뜻이다. 각 레이어는 파일 시스템에 대한 특정 변화를 나타내며, 새파일을 추가, 기존 파일을 수정, 불필요한 파일을 삭제한는 작업이 포함된다.
  • 기본 이미지 : 첫번 째 레이어는 기본운영체제(우분투 등)으로 시작
  • 변경 레이어 : 추가되는 각 레이어는 예를 들어 소프트웨어 설치, 설정파일 추가 등의 작업이 레어어를 한개씩 추가한다.
  • 레이어 저장 방식 : 각 레이어는 독립적으로 저장되고, 이전 레이어에서 변경된 부분만 저장된다. 변경되지 않은 부분은 다시 복사되지 않고 효율적으로 관리된다.

다음 포스팅은 실제 데이터베이스를 올리고 난 이후이다. 끝

profile
백엔드 개발자

0개의 댓글