개발/Docker

[3] 도커 이미지

민지기il 2025. 3. 9. 10:52

[1] 도커 이미지 생성

[2] 도커 파일

: 도커 이미지를 만들기 위한 설정 파일이며 컨테이너가 어떻게 행동해야 하는지에 대한 설정들을 정의해 둠

만드는 순서)

1) 베이스 이미지를 명시함 (파일 스냅샷)

2) 추가적으로 필요한 파일을 다운 받기 위한 명령어 명시 (파일 스냅샷)

3) 컨테이너 시작 시 실행될 명령어를 명시 

 

[2-1] 베이스 이미지

이미지: ( 레이어*n )로 구성됨; 베이스 이미지는 OS라고 생각하면 됨

실습) hello 문구 출력하기

FROM: 이미지 생성 시 기반이 되는 이미지 레이어 -- <이미지 이름><태그> 형식으로 작성

RUN: 도커 이미지가 생성되기 전에 수행할 쉘 명령어

CMD: 컨테이너가 시작됐을 때 실행할 실행 파일 / 쉘 스크립트 (DockerFile 내 1번만 사용 가능

베이스 이미지는 ubuntu, centos 등 다양하지만 사이즈가 작을 때는 alpine 베이스 이미지를 사용함

 

[2-2] 도커 파일로 도커 이미지 만들기

dockerfile에 입력된 것들이 도커 클라이언트에 전달돼서 도커 서버가 인식하게 해야 함

-> docker build ./ 또는 docker build . 명령어 사용

build: 해당 디렉토리 내에서 dockerfile이라는 파일을 알아서 찾아서 도커 클라이언트에 전달함

만드는 순서)

1) alpine 이미지 (시작 시 실행될 명령어 + 파일 스냅샷)

2) 임시 컨테이너 생성 (하드 디스크에 파일 시스템 스냅샷 추가 & echo, hello 추가)

3) 임시 컨테이너를 토대로 새로운 alpine 이미지 생성

결론: base 이미지에서 다른 종속성 / 새로운 커맨드를 추가할때는 임시 컨테이너를 만들고 그걸 토대로 새로운 이미지 생성 !

-> 이후 임시 컨테이너는 지워줌

 

[2-3] 내가 만든 이미지에 이름 주기 -- docker build -t jangmj80/hello:latest

fb16...을 이름 짓기)

이렇게 이름을 지으면 아래처럼 나온다.