코딩항해기

[기타] Docker 기초 이해 본문

기타

[기타] Docker 기초 이해

miniBcake 2024. 11. 12. 17:44

 

팀 프로젝트 한 내용을 Docker로 배포 시도한다는 팀원이 있어 관련된 지식을 미리 확보해두기 위해 Docker를 찾아보게 되었다. 생각보다 간단한 내용은 아니어서 기초 내용만 확보해두고 발표가 완료된 뒤 추가 지식을 보완하기로 해 기초 지식 부분만 정리했다.

 

Docker

Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼이다. libcontainer 컨테이너를 사용한다.

Docker를 사용하면 개발환경에 구애받지 않고 내가 사용하던 개발환경을 손쉽게 구축할 수 있다. 또한 일반적인 Hypervisor 가상화 방식과는 다르게 경량 가상화로 실행이 빨라 한 개의 서버만 있으면 여러 가지 서비스 실행이 가능해 서버 확장을 필요로 하지 않는 장점이 있다. 배포도 쉽고 수정도 쉽다.

 

리눅스
가장 대표적인 오픈 소스 운영체제로 PC와 서버에서 둘 다 사용되지만 서버에서 더 많이 사용된다.

 

가상화 이유

향상된 컴퓨터 성능을 더욱 효율적으로 사용하기 위해 가상화 기술이 많이 등장했다. 서버 관리자 입장에서 CPU사용률이 10%대 밖에 되지 않는 활용도가 낮은 서버들의 리소스 낭비이다.  그렇다고 모든 서비스를 한 서버안에 올린다면 안정성에 문제가 생길수도 있기 때문에 안정성을 높이며 리소스도 최대한 활용할 수 있는 방법으로 나타난게 서버 가상화이다. 대표적인 가상화 플랫폼으로 VM이 있다.

 

Docker 컨테이너

컨테이너는 가상화 기술 중 하나로 대표적으로 리눅스 컨테이너가 있다. 기본 OS를 가상화시키던 것과 달리 컨테이너는 OS레벨의 가상화로 프로세스를 격리시켜 동작하는 방식으로 이뤄진다. 

 

Docker 이미지

Docker Image란 컨테이너를 실행할 수 있는 실행파일, 설정 값 들을 가지고 있는 것이다.

 

 

 

 

참고하면 좋은 글 : https://khj93.tistory.com/entry/Docker-Docker-%EA%B0%9C%EB%85%90

상세 정리 글 : https://velog.io/@gyumin_2/Docker%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EC%A7%80-%EB%AA%A8%EB%A5%B4%EA%B2%A0%EB%8B%A4