이미지 내부 파일 시스템 구조 보기

현서황·2024년 10월 20일

Docker

목록 보기
3/9

docker run hello-world

  • ls가 쓰여있는 자리는 원래 이미지가 가지고 있는 시작 명령어를 무시하고, 여기에 있는 커맨드를 실행하도록 하는 것이다.
  • ls커맨드는 현재 디렉터리의 파일 리스트를 표출한다.

작동 순서

  1. 도커 클라이언트에 명령어 입력 후 도커 서버로 보냄.
  2. 도커 서버에서 컨테이너를 위한 이미지가 이미 캐시되어있는지 확인
  3. 없으면 도커 허브에서 다운받아옴. 있다면 그 이미 가지고있는 이미지로 컨테이너 생성


이 예시를 보면, 파일 리스트를 보여준 것을 확인할 수 있다.
로컬에는 alpine이라는 것이 없어서 도커 허브에서 Pull 해온 것을 확인할 수 있다.

설명
1. Alpine 이미지를 이용해 컨테이너 생성
2. 생성할 때 Alpine 이미지 안에 들어있던 파일 스냅샷들(bin,dev,etc 등등 ..)이 컨테이너 안에 있는 하드디스크로 다운로드됨.
3. 이미지 이름 뒤에 다른 명령어를 더 붙여서 원래 이미지 안에 들어있는 기본 커맨드는 무시되고, ls 명령어가 실행됨.


하지만, 어떻게 Alpine 이미지를 이용해 ls명령어를 실행시킬 수 있는거지?

Alpine 이미지 파일 스냅샷 내부에 이미 ls를 사용 가능하게 하는 파일이 있다!

hello-world 이미지로는 ls 명령어를 사용할 수 없다.

설명을 보면, executable file not found.(실행할 수 있는 파일을 못찾음)

profile
노는 게 제일 좋은 뽀로로

0개의 댓글