Docker 이미지·컨테이너와 Compose
·
DE (Data Engineering)
같은 코드를 실행해도 컴퓨터마다 설치된 언어와 라이브러리 버전이 다르면 결과가 달라질 수 있다. Docker는 애플리케이션과 필요한 실행 환경을 이미지로 묶고, 이를 컨테이너로 실행해 환경 차이를 줄이는 도구다.컨테이너와 가상 머신은 어떻게 다를까?가상 머신은 일반적으로 하이퍼바이저 위에서 각 게스트 운영체제를 실행한다. 반면 리눅스 컨테이너는 호스트의 리눅스 커널을 공유하면서 프로세스와 파일 시스템 등을 격리한다. 그래서 별도의 게스트 OS 전체를 매번 실행하지 않고도 애플리케이션을 분리할 수 있다.공유하는 커널과 격리 방식이 다르므로 컨테이너를 가상 머신과 동일한 보안 경계로 가정하면 안 된다. 또한 macOS나 Windows의 Docker Desktop에서 Linux 컨테이너를 실행할 때는 Linu..