728x90
반응형
도커 이미지 생성 순서
도커 이미지의 생성 순서는 다음과 같다.
- 도커 파일(Dockerfile)이라는 파일을 작성.
- 도커 파일은 도커 이미지를 만들기 위한 설정 파일로, 컨테이너가 어떻게 행동해야 하는지에 대한 설정을 정의함.
- 도커 파일에 입력한 명령들이 도커 클라이언트에 전달.
- 도커 클라이언트에 전달된 명령어들을 도커 서버에서 처리해 도커 이미지를 만들어 줌.
도커 파일(Dockerfile) 만들기
도커 파일?
- 도커 컨테이너가 어떻게 행동해야 하는지에 대한 설정을 정의하는 곳.
- 도커 이미지 안에 무엇이 필요할지(명령어, 파일 스냅숏) 생각하면서 도커 파일을 작성해야 함.
작성 방법
- 베이스 이미지를 명시(파일 스냅숏에 해당하는 부분)
- 베이스 이미지 이외에 애플리케이션을 실행하는 데 필요한 파일들을 이미지 안에 내려받기 위한 명령어를 명시(파일 스냅숏에 해당하는 부분)
- 컨테이너 시작 시에 실행할 명령어를 명시(애플리케이션 실행을 위한 명령어에 해당)
베이스 이미지란?
- 도커 이미지는 여러개의 레이어로 구성되어 있는데, 그중 베이스 이미지는 생성하고자 하는 이미지의 기반이 되는 부분이며, 이미지를 만들기 위한 기본 이미지이기도 하다.
- 예를 들어 어떤 프로그램을 위한 이미지를 만든다고 가정할 때 이 프로그램은 OS 위에 설치되어야 한다고 한다면 OS가 이미지를 만들기 위한 베이스 이미지가 되며 실제 프로그램을 위한 부분이 레이어가 된다.
- 이때 레이어는 중간 단계의 이미지라고 생각하면 된다.
- 레이어를 추가하는 행위를 "레이어 캐싱"이라고 한다.
도커 파일 작성
- 먼저 도커 파일을 만들 폴더 하나를 생성한다.
- 소스 코드 편집기를 실행한 다음 방금 생성한 폴더를 불러오고 도커 파일을 만든다.
- 생성한 Dockerfile에 어떻게 도커 파일을 작성할지 기본적인 토대를 작성
- FROM을 실제 값으로 변경, RUN 값 변경(예제에서는 이미 alpine에 들어 있기 때문에 넘어감), CMD에 명령어 명시
- Buildkit 비활성화하기, 도커 18.09 부터 도커 이미지 빌드 시 기본으로 지원함.
- 도커 파일을 빌드할 때 더 빠른 속도로, 효율적으로 빌드할 수 있게 해줌.
- 실제로 도커를 사용 시 도커 Buildkit을 사용하는게 좋음.
- 활성화 시 도커 이미지 아이디를 sha256으로 변환한 해시값으로 출력, 이 값으로도 도커 컨테이너 실행 가능.
- Docker Desktop -> Settings(or Preferences) -> Docker Engine에서 buildkit 부분을 false으로 변경후 Apply & restart를 누르면됨.
도커 파일로 이미지 만들기
도커 파일에 입력한 명령어들을 도커 클라이언트로 전달해 도커 서버가 인식하게 해야 한다. 이를 위해 다음과 같은 명령어를 사용한다.
docker build ./
# 또는
docker build .
build 명령어?
- 해당 디렉터리에서 Dockerfile이라는 파일을 찾아 도커 클라이언트에 전달한다.
- 이때 . , ./는 둘다 현재 디렉터리를 의미한다.
[1/2] : alpine 이미지를 가져온다.
[2/2] : RUN에 관련된 처리를 한다.
빌드 과정
도커 이미지에 이름 붙여주기
도커 컨테이너 ID로 실행하기엔 길이가 너무 길어 번거롭다.
다음과 같은 명령어로 이름을 바꿀 수 있다.
docker build -t <나의 도커 아이디/저장소,프로젝트 이름:버전> .
728x90
반응형
'Container > Docker' 카테고리의 다른 글
[Docker] 도커 이미지 PUSH, PULL (0) | 2023.08.08 |
---|---|
[Docker] 도커로 Node.js, flask 서버 이미지 만들어 사용하기 (0) | 2023.08.08 |
[Docker] 기본적인 도커 클라이언트 명령어 (0) | 2023.07.27 |
[Docker] 도커 기본 개념 (0) | 2023.07.18 |
[Docker] 도커(Docker) (0) | 2023.07.12 |