docker

.·2022년 7월 1일
0

blog

목록 보기
43/52

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다.
다양한 이유로 계속 바뀌는 서버 환경과 개발 환경 문제를 해결하기 위해 등장했다.
툴 업데이트, 회사의 툴 사용 변경, 회사의 언어 정책 변경 등
기존에 서버와 개발 환경이 변경되면 컴퓨터 셋팅(개발 환경) 등을 다시하거나 그 과정에서 발생하는 문제들과 같이, 여러모로 불편한 점이 많았다.
도커가 등장하고 서버관리/개발 방식이(컨테이너) 완전히 편리하게 바뀌게 된다.

도커는 가상머신이 아니고 격리만 해주기 떄문에 성능상 하락이 없다. (성능 하락이 큰 VM과 다르다.)
확장성과 이식성
도커가 설치되어 있다면 어디서든 컨테이너를 실행할 수 있다.
오픈 소스이기에 특정 회사나 서비스에 종속적이지 않다.
쉽게 개발서버를 만들 수 있고 테스트 서버 생성도 가능하다.
표준성
도커를 사용하지 않는 경우, 각각의 언어로 만든 서비스들의 배포 방식은 모두 다르다.
도커는 컨테이너라는 표준으로 서버를 배포하므로 모든 서비스들의 배포 과정이 동일해진다.
이미지
컨테이너를 실행하기 위한 압축파일과 같은 개념이다.
이미지에서 컨테이너를 생성하기 떄문에 반드시 이미지를 만드는 과정이 필요하다.
Dockerfile을 이용하여 이미지를 만들고 처음부터 재현 가능하다.
빌드 서버에서 이미지를 만들면 해당 이미지를 이미지 저장소(허브)에 저장하고 운영서버에서 이미지를 불러와 사용한다.
설정관리
도커에서 설정은 보통 아래와 같이 환경변수로 제어한다.
MYSQL_PASS=password와 같이 컨테이너를 띄울 때 환경변수를 같이 지정한다.
하나의 이미지가 환경변수에 따라 동적으로 설정파일을 생성하도록 만들어져야한다.
자원관리
컨테이너는 삭제 후 새로 만들면 모든 데이터가 초기화된다. (제거가 쉽다.)
그러므로 저장이 필요하다면, 업로드 파일을 외부 스토리지와 링크하여 사용하거나 S3같은 별도의 저장소가 필요하다.
세션이나 캐시를 memcached나 redis와 같은 외부로 분리한다.

0개의 댓글