[3] 도커 이미지
[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...을 이름 짓기)
이렇게 이름을 지으면 아래처럼 나온다.