[스터디] Docker란 무엇인가?
Docker란 무엇인가?
Docker는 애플리케이션과 그 환경을 컨테이너라는 독립된 패키지에 담고, 개발, 배포, 실행을
쉽게 할 수 있도록 지원하는 오픈 소스 가상화 플랫폼이다 Docker를 사용하면 애플리케이션과 모든 종속성을
함께 패키징하여 일관된 실행 환경을 제공한다. 개발자는 동일한 컨테이너를 어디서든
동일한 방식으로 실행할 수 있어, 환경 차이로 인한 문제를 최소화할 수 있다.
Docker는 가상 머신과 유사하지만, 보다 가볍고 효율적이다.
컨테이너는 호스트 시스템의 커널을 공유하며, 필요한 파일과 설정만 포함하여 실행된다.
또한, Docker는 오픈 소스이므로 누구나 기능을 확장하거나 기여할 수 있다
Docker는 주로 Go 언어로 작성되었으며, 리눅스 기반에서 작동한다
컨테이너란 무엇인가?
컨테이너는 애플리케이션과 그 종속성을 격리된 환경에서 실행할 수 있도록 도와주는 가상화 기술이다.
컨테이너는 운영체제 레벨에서 프로세스를 격리시키는 방식으로,
기존의 가상 머신과는 몇 가지 중요한 차이점을 가지고 있다
가상 머신
호스트 OS 위에 하이퍼바이저를 사용해 독립적인 게스트 OS를 실행한다
이 과정에서 각 게스트 OS는 자체 커널과 시스템 자원을 가지며,
이를 위해 많은 메모리와 디스크 공간이 필요하다
설정과 설치 과정도 복잡하고 시간이 많이 소요된다
컨테이너
호스트 OS의 커널을 공유하면서 프로세스 단위로 격리된 환경을 제공 ,
각 컨테이너는 필요한 라이브러리와 실행 파일만 포함하고 있어, 가상 머신에 비해 훨씬 가볍고 빠르다
Docker file
도커 파일은 도커 이미지를 만들기 위한 스크립트 파일로, 이미지 구성 명령어를 작성하여
자동화된 이미지 빌드를 가능하게 한다. 주로 텍스트 형식으로 작성되며,
이미지의 베이스, 패키지 설치, 애플리케이션 코드 추가, 포트 및 환경 변수 설정 등의 단계를 포함한다.
일관된 환경에서 애플리케이션을 배포하고 실행할 수 있다.
Docker Image
Docker 이미지는 실제 서비스를 운영하기 위해 필요한 모든 것을 포함한 패키지
애플리케이션의 소스 코드, 실행에 필요한 라이브러리, 실행 파일, 설정 값 등을 모두 담고 있다.
Docker Hub를 통해 이러한 이미지들을 저장하고 관리할 수 있으며, 필요한 경우에는
다른 사람이 만든 이미지를 가져와 사용하거나 자신이 만든 이미지를 공유할 수 있다
개발자들은 이미지의 버전을 관리하고, 필요한 환경에서 쉽게 배포하고 실행할 수 있다
Docker Container
도커 컨테이너는 도커 이미지를 기반으로 생성되며, 여러 개의 컨테이너를 하나의 이미지로부터 만들어낼 수 있다.
이미지를 실행하여 컨테이너를 생성하면, 해당 이미지의 목적에 맞게 격리된 환경에서 프로세스가 실행된다.
컨테이너는 애플리케이션의 실행을 위한 독립적인 단위로 사용된다.