-
Dockerfile과 도커 이미지 만들기백엔드 관련 강의 공부/도커와 CI환경 2023. 12. 29. 21:10
도커 이미지는 컨테이너를 만들기 위해 필요한 설정이나 종속성들을 갖고있는 소프트웨어 패키지이다.
지금까지는 이미 있는 도커 이미지를 Dockerhub에서 가져와서 사용했지만 직접 이미지를 만들수도 있으며 직접 만든 이미지를 Dockerhub에 업로드 할 수도 있다.
도커 이미지 생성 순서
도커 파일 만들기
도커 파일(Docker file)이란?
- 도커 이미지를 만들기 위한 설정 파일로 컨테이너가 어떻게 행동해야 하는지에 대한 설정들을 정의해 주는 파일
도커 파일을 만드는 순서
도커 파일은 도커 이미지를 만들기 위한 설정 파일이므로 도커 이미지가 필요한 것이 무엇인지 생각하는 것이 먼저이다.
도커 이미지는 시작시 실행 될 명령어와 파일 스냅샷이 필요했었다.
- 베이스 이미지를 명시 (파일 스냅샷에 해당)
- 추가적으로 필요한 파일을 다운받기 위한 명령어를 명시 (파일 스냅샷에 해당)
- 컨테이너 시작시 실행 될 명령어를 명시 (시작시 실행 될 명령어에 해당)
베이스 이미지는 도커 이미지의 기반이 되는 부분이며 간단하게 OS라고 생각하면 된다고 한다.
visual studio code로 dockerFile을 생성했다.
FROM, RUN, CMD는 각각 도커 서버에게 무엇을 하라고 알려주는 것이다.
FROM
이미지 생성시 기반이 되는 이미지 레이어
<이미지 이름>:<태그> 형식으로 작성하며 태그를 안붙이면 자동으로 가장 최신것으로 다운 받는다.
ex) ubuntu:14.04
RUN
도커 이미지가 생성되기 전에 수행할 쉘 명령어
CMD
컨테이너가 시작되었을 때 실행할 실행 파일 또는 쉘 스크립트.
해당 명령어는 DockerFile 내에서 1회만 사용 가능하다.
간단하게 hello를 출력하는 이미지를 만든 것이다.
베이스 이미지는 ubuntu나 centos를 써도 되지만 간단한 이미지이기 때문에 가벼운 alpine을 사용하였으며 RUN은 필요하지 않을 정도로 간단한 이미지이기 때문에 주석처리 했다.
도커 이미지 만들기
위에서 Dockerfile을 만들었는데 도커 파일에 입력된 것들이 도커 클라이언트에 전달된 후 도커 서버가 인식할 수 있게 하려면 docker build ./ 또는 docker buiild . 명령어를 사용해야 한다.
Build 명령어는 해당 디렉토리 내에서 dockerfile이라는 파일을 찾아서 도커 클라이언트에 전달시켜주는 명령어이다.
docker build ./와 docker build .는 같은 명령어지만 뒤에 디렉토리까지 포함해서 docker build ./를 하는 것이 권장된다.
visual studio의 터미널에 docker build ./를 입력했더니 도커 이미지가 생성되었다.
도커 이미지 이름 지정
도커 이미지의 이름은 자동으로 생성되는데 숫자와 알파벳의 조합으로 이루어지기 때문에 복잡하다. 이름을 직접 지정해주는 명령어가 있다.
docker build -t <이미지 이름> 으로 지정할 수 있다.
이미지 이름은 아무거나 해도 되지만 사람들 사이에서 정해진 규약 같은게 존재한다.
-t 도커 아이디 / 저장소/프로젝트이름 : 버전
위와 같은 형식으로 사용한다.
내 도커 아이디는 chanhee01이고, 저장소 or 프로젝트 이름에는 hello를 넣는다고 가정하면
docker build -t chanhee01/hello:latest와 같은 형식으로 도커 이미지 이름을 지정할 수 있다.
위의 사진처럼 chanhee01/hello라는 도커 이미지를 생성하면
도커 이미지가 이름에 맞게 생성된다.
터미널로 실행을 해봐도 hello가 잘 출력되는 것을 확인할 수 있다.
'백엔드 관련 강의 공부 > 도커와 CI환경' 카테고리의 다른 글
어플리케이션 코드 수정 후 빌드 - Docker Volume (0) 2023.12.30 간단한 Node.js 앱을 이용한 도커 활용 (0) 2023.12.30 실행 중인 컨테이너에 명령어 전달 - exec 명령어 (0) 2023.12.29 도커 컨테이너의 생명주기 (0) 2023.12.29 컨테이너 나열 - ps 명령어 (0) 2023.12.29