seok의 패치노트
[Docker] 이미지 만들기-2(build) 본문
저번시간에는 현재상태까지 스냅샷으로 찍어 새로운 이미지를 만들어내는 방식인 commit 방식에 대해 알아보았다
(못찾겠으면 여기로.. https://oneseok.tistory.com/51)
이번시간에는 아마도 현업에서 많이들 사용할 방식인 build 방식을 이용하여 이미지를 만들어보겠다.
build방식은 "Dockerfile" 이라는 어떠한 파일을 이용하여 이미지를 만드는 방식인데 이 "Dockerfile" 안에 같이 설치할 내용들을 적어두고 실행 시키는 방식이다.
이게 엄청나다!!..
commit처럼 bash 쉘에 들어가서 무언가 하는 작업(git을 설치한다던지..) 없이 그냥 뭐뭐 같이 설치할지 Dockerfile넣고 실행시키기만 하면된다,
이렇게 Dockerfile 에 설치할 내용들을 명시해두면 히스토리의 역활 까지 같이 해주니 서버개발자들의 고통인 이전 담당자가 뭘 설치했는지 알수없는 그 두려움에서 자동으로 벗어날 수가 있다!!!!^^
build
1. Dockerfile 만들기
- 현재 내컴퓨터 특정 디렉터리에 파일을 만들고 설치 명령어를 작성한다.

- FROM 명령어를 사용하여 베이스 이미지를 지정하고 이미지가 생성될때 RUN으로 명령어 실행하기

여기서 Dockerfile만들때 쓸수있는 명령어 목록을 한번 보고가자
명령어 | 내용 |
FROM | 이미지를 만들때 필수로 필요한 기본 이미지를 지정할때 |
RUN | 이미지를 만들기위해 컨테이너 내부에서 실행될 명령어 |
EXPOSE | 허용 가능한 포트 지정하기(호스트와 나중에 연결할 포트 미리 열어두면 좋을듯?) |
ENV | 환경변수 설정하기 |
ADD | 파일 또는 디렉터리 추가(URL,ZIP 추가 가능) |
COPY | 파일 또는 디렉터리 추가 |
CMD | 컨테이너 시작 시마다 기본적으로 실행될 명령어 설정 (Entrypoint의 인자로 사용) |
ENTRYPOINT | 컨테이너 기본 실행 명령어 |
VOLUME | 외부 마운트 포인트 생성 |
USER | RUN, CMD, ENTRYPOINT를 실행하는 사용자 지정 |
WORKDIR | 명령어를 실행할 디렉터리 이동 |
ARGS | build 명령어를 실행할 때 추가로 입력을 받아 Dockerfile 내에서 사용될 변수의 값을 설정 |
LABEL | 메타 데이터추가 (key:value 형태) |
ONBUILD | 다른 새로운 이미지가 빌드될때 그 새로운 이미지의 베이스가 되는 기본이미지로 지정될때 사용 |
2. 도커 이미지 빌드하기
- docker build -t ubuntu:git-dockerfile .
(docker build <옵션> <이미지이름>:<태그명> <Dockerfile 경로>)
(현재 나는 Dockerfile이 있는 경로에서 명령어를 작성중이기 때문에 도커파일 경로는 "." 으로 현재 디렉터리라고
표시하였다)

3. 새로운 이미지를 실행시켜보기

'DevOps > Docker' 카테고리의 다른 글
[Docker] Spring Boot 배포하기 (0) | 2021.10.20 |
---|---|
[Docker] 이미지 만들기(Dockerfile 최적화) (0) | 2021.10.19 |
[Docker] 이미지 만들기-1(commit) (0) | 2021.10.19 |
[Docker]WorkBench로 Mysql 접속하기 (0) | 2021.10.17 |
[Docker] yml 파일로 안전하게 컨테이너 실행시키기 (0) | 2021.10.14 |