[ Docker ] 따라하며 배우는 도커와 CI환경 - 3

·2023년 6월 13일
0

도커 이미지 생성하는 순서

이미지는 컨테이너 생성
그럼 이미지는?

도커 이미지 생성하는 순서

Dockerfile 작성 -> 도커 클라이언트 -> 도커서버 -> 이미지 생성

Dockerfile :
Docker Image 만들기 위한 설정 파일
컨테이너가 어떻게 행동해야 하는지에 대한 설정들 정의

도커 클라이언트 :
도커 파일에 입력된 것들이 도커 클라이언트에 전달되어야 한다.

도커 서버 :
도커 클라이언트에 전달된 모든 중요한 작업들을 하는 곳

Dockerfile 만들기

Dockerfile :
Docker Image 만들기 위한 설정 파일
컨테이너가 어떻게 행동해야 하는지에 대한 설정들 정의

Dockerfile 생성 순서

  1. 베이스 이미지 명시
  2. 추가적 필요한 파일 다운 받기 위한 명령어 명시
  3. 컨테이너 시작시 실행 될 명령어 명시

베이스 이미지란?
도커 이미지 여러개의 레이어 되어 있는데
그 중 베이스 이미지는 이 이미지의 기반이 되는 부분
OS 같은 역활

레이어는 중간 단계의 이미지

목표

"hello" 문구 출력

  1. 도커 파일 만들 폴더 만들기
  2. 폴더 에디터 이용해 실행
  3. 파일 하나 생성
  4. 그 안에 어떻게 진행할 지 기본적인 토대
# 베이스 이미지 명시
FROM baseImage

# 추가적으로 필요한 파일 다운로드
RUN command

# 컨테이너 시작시 실행 될 명령어 명시
CMD [ "executable" ]

FROM, RUN, CMD 도커 서버 명령어

FROM
이미지 생성시 기반이 되는 이미지 레이어
<이미지 이름><태그> 형식으로 작성
태그 안붙이면 자동적으로 가장 최신것으로 다운 받음
ex) ubuntu:14.04

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

CMD
컨테이너가 시작되었을 때 실행할 실행 파일 또는 셸 스크립트
해당 명령어는 DockerFile내 1회만 사용

  1. 베이스 이미지에 실제 값 추가
  2. 베이스 이미지 ubuntu, centos 써도 되지만 간단한건 사이즈 작은 alpine 베이스 이미지 사용
  3. hello 문자 출력하기 위해 echo 사용해야 하는데 alpine 안에 echo 사용하게 할 수 있는 파일 있어 RUN 생략
  4. 시작시 실행 될 명령어 echo hello

도커 파일로 도커 이미지 만들기

완성된 도커 파일로 이미지 생성하기

도커 파일에 입력된 것들이 도커 클라이언트에 전달되어 도커 서버가 인식하게 해야 한다.

docker build ./ 또는 docker build .

Build 명령어

  • 해당 디렉토리 내에 dockerfile 파일 찾아 도커 클라이언트에 전달

  • docker build 뒤 ./ 와 . 은 둘다 현재 디렉토리를 가르킨다.

build 과정

  • alpine 이미지 가져오기
  • 임시 컨테이너 생성 후 그 컨테이너에 시작시 사용할 명령어 포함 시키기
  • 그런 후 방금 생성한 임시 컨테이너 지우고 새로운 이미지 만들기

결론
베이스 이미지에서 다른 종속성이나 새로운 커멘드 추가 할때는
임시 컨테이너를 만든 후 그 컨테이너를 토대로 새로운 이미지 만든다
그리고 임시 컨테이너는 지워준다.

이미지 기억하기 쉬운 이름 주기

docker build -t talgun/hello:latest

-t 도커아이디 / 저장소/프로젝트 이름 : 버전
-> 규칙같은거다.

출처
https://www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%8F%84%EC%BB%A4-ci

0개의 댓글