Docker

이미지와 컨테이너

Debin 2024. 9. 3.
반응형

이미지(Image)

소프트웨어를 실행하기 위해서는 운영체제, 프로그램이 실행하기 위해서 필요한 요소(런타임, 라이브러리 등)와 실행시킬 프로그램이 필요하다.

 

이미지를 활용하면 의존 요소를 설치하는 과정 없이 이미지 이름만 지정하면 편하게 프로그램을 구동시킬 수 있다.

쉽게 말해 이미지란 파일 시스템의 특정 시점을 저장해 놓은 압축 파일이다.

 

이미지를 통해 제작 단계에서부터 소프트웨어뿐만 아니라 소프트웨어가 실행하기 위해서 필요한 모든 구성요소(OS, 구성요소, 프로그램)를 미리 준비해서 압축한다.

 

압축한 이미지를 다운 받아서 run 시키면 격리된 공간에 컨테이너가 실행된다.

컨테이너를 실행하면 이미지 안에 있던 프로그램이 실행된 것이다.

 

이미지는 백업 파일과 같아서 그 저장해 놓으면 프로그램을 실행하는 시점을 만들 수 있고 다른 컴퓨터에 편하게 공유할 수도 있다.

 

가상머신 스냅샷과 개념이 비슷하지만 이미지의 크기가 훨씬 작다.

 

컨테이너와 이미지

도커는 컨테이너 내에서 소프트웨어를 운영하는 것이 목적인데, 컨테이너는 이미지를 통해서 실행할 수 있다.

 

더 자세히 말하면 이미지를 컨테이너로 실행 시키는 것은 이미지에 저장되어 있는 모든 요소들을 격리된 공간으로 만든 다음에 격리된 공간 안에서 프로그램(이미지)를 프로세스(컨테이너)로 실행시키는 단계를 거치는 것이다.

 

이미지와 메타데이터

이미지 파일에 대한 데이터를 메타데이터라고 한다. 예를 들어 이미지의 이름, 파일 사이즈 같은 정보가 있다.

 

중요한 부분은 env와 cmd 필드이다.

 

env는 애플리케이션이 사용하는 환경설정값으로 키와 밸류로 구성됨된다.

소프트웨어 버전과 프로그램을 실행할 때 필요한 파일 경로 같은 정보가 들어가 있다.

쉽게 말해 env는 소프트웨어가 실행할 때 사용할 설정 정보

 

cmd는 이미지를 컨테이너로 실행할 때 명령어를 지정할 수 있다.

이미지를 컨테이너로 실행할때 cmd에 있는 명령어를 통해서 어떤 프로그램을 실행할지를 메타데이터에서 결정한다.

여기에서 지정한 이미지와 이미지의 압축 파일과 이미지의 메타데이터를 사용해서 격리된 공간의 컨테이너가 만들어진다.

 

아래 명령어를 통해 이미지의 세부 정보를 확인할 수 있다.

docker image inspect image명

 

MySQL 8.0 버전 이미지를 위 명령어로 확인해보았다.

 

컨테이너 실행 시 env를 덮어 씌우려면 아래와 같은 명령어를 사용해야 한다.

 

docker run --env KEY=VALUE 이미지명

 

참고자료

https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%89%AC%EC%9A%B4-%EB%8F%84%EC%BB%A4/dashboard

 

개발자를 위한 쉬운 도커 강의 | 데브위키 - 인프런

데브위키 | 현업 개발자가 도커를 사용한 경험을 녹여낸 새로운 커리큘럼으로 기존 교재 및 강의와 차별된 강의를 제공합니다. 단순한 명령어 사용법이 아닌 도커를 왜 사용해야하는지 대한 근

www.inflearn.com

 

반응형

댓글