-
[따라하며 배우는 도커와 CI환경] 3. 직접 도커 이미지 만들기DevOps/Docker 2022. 5. 17. 01:23
✔️ 도커 이미지 생성 순서
도커 이미지를 생성하는 과정은 다음과 같다.
1. 도커 파일을 작성한다.
2. 도커 파일에 입력된 값들을 클라이언트에 전달한다.
3. 도커 서버에서 도커 클라이언트에 전달된 모든 중요한 작업들을 수행한다.
4. 이미지를 생성한다.
이제부터 도커 이미지 생성 과정을 더 자세하게 알아보자.✔️ Dockerfile 만들기
Docker file이란?
- 도커 이미지를 만들기 위한 설정 파일
- 컨테이너가 어떻게 행동해야 하는지에 대한 설정들을 정의하는 곳이다.
베이스 이미지(Base Image)란?
- 도커 이미지의 기반이 되는 부분
- 참고) 도커 이미지는 베이스 이미지와 레이어들로 구성되어 있다.
도커 파일을 만드는 순서
1. 베이스 이미지를 명시한다. (파일 스냅샷에 해당)
➡️ FROM <베이스이미지 이름><태그> : 태그를 붙이지 않으면 자동적으로 가장 최신 것을 다운받는다.2. 추가적으로 필요한 파일을 다운받기 위한 명령어들을 명시한다. (파일 스냅샷에 해당)
➡️ RUN 명령어 : 도커 이미지가 생성되기 전에 수행할 쉘 명령어3. 컨테이너 시작 시 실행될 명령어를 명시한다. (시작 시 실행될 명령어에 해당)
➡️ CMD ["명령어"] : 컨테이너가 시작되었을 때 실행할 실행 파일 또는 셸 스크립트.
해당 명령어는 dockerfile 내에서 1회만 쓸 수 있다.dockerfile 구조
FROM baseImage
RUN command
CMD ["executable"]✔️ 도커 파일로 도커 이미지 만들기
위와 같이 도커 파일은 만들고나서 어떻게 이미지를 생성할까?
우선, 도커 파일에 입력된 값들을 도커 클라이언트에 전달하여 도커 서버가 인식하게 하여야 한다.
이때 사용하는 명령어가 build 명령어다.build
$ docker build <경로>
위의 명령어는 도커 파일을 해당 경로에서 찾아서, 도커 클라이언트에 전달해준다.
build 과정은 다음과 같다.
1. 베이스 이미지를 가져온다.
2. 임시 컨테이너를 생성한다.
3. 임시 컨테이너의 하드디스크에 베이스 이미지의 파일 시스템 스냅숏을 추가한다.
임시 컨테이너에 시작 시 실행할 명령어를 추가한다.4. 임시 컨테이너를 기반으로 새로운 이미지를 생성하고, 임시 컨테이너를 지워준다.
✔️ 이미지에 기억하기 쉬운 이름 주기
docker build를 통해 이미지를 만들고나서, 이미지 아이디를 통해 컨테이너를 실행할 수 있다.
그러나 이미지 아이디는 길고 복잡하여 기억하기 어렵다.
이제 내가 만든 이미지에 이름을 붙여주는 방법을 알아보자.build -t
다음과 같이 build에 -t 옵션을 주면 이미지의 이름을 설정할 수 있다.
$ docker build -t <이미지 이름> <경로>
이미지 이름은 자유롭게 설정할 수 있으나, 일반적으로 다음과 같은 형식의 이름으로 설정한다.
<나의 도커 아이디 > / 저장소(프로젝트) 이름 : 버전
ex) wisdom/hello:latest참고
728x90'DevOps > Docker' 카테고리의 다른 글
[따라하며 배우는 도커와 CI환경] 6. 간단한 어플을 실제로 배포해보기(개발 환경 부분) (0) 2022.05.30 [따라하며 배우는 도커와 CI환경] 5. Docker Compose (0) 2022.05.23 [따라하며 배우는 도커와 CI환경] 4. 도커를 이용한 간단한 Node.js 어플 만들기 (0) 2022.05.22 [따라하며 배우는 도커와 CI환경] 2. 기본적인 도커 클라이언트 명령어 (0) 2022.05.16 [따라하며 배우는 도커와 CI환경] 1. 도커 기본 (0) 2022.05.10