반응형
SMALL
Dockerfile
컨테이너 정보를 담은 코드 파일
이것을 기반으로 컨테이너 복제나 배포가 이루어짐
* 도커 이미지 빌드
Dockerfile
이나 애플리케이션 실행 파일을 사용해서 도커 컨테이너의 원형이 될 이미지를 만드는 과정Dockerfile
실행 시FROM
의 이미지가 만들어짐- 그럼 이미지를 build를 해줘야 실행(run)이 가능함
Dockerfile
FROM ubuntu:16.04
COPY helloworld /usr/local/bin
RUN chmod +x /usr/local/bin/helloworld
CMD ["helloworld"]
FROM
컨테이너를 만들 이미지(틀 역할) 정의
FROM <이미지명>:<버전>
- 위 에서는
ubuntu
이미지를 지정하였다. :
다음에 버전을 써준다.- 버전을 지정 안하면 기본
latest
이다.
COPY
지정한 폴더에 파일을 복사하라
COPY <파일명> <폴더절대경로>
helloworld
파일을/usr/local/bin
에 복사하라고 정의하였다.
RUN
도커 컨테이너 안에서 이 명령을 수행해라
RUN <~~명령~~>
helloworld
스크립트에 실행 권한을 부여하기 위하여chmod +x <절대경로>
를 사용하였다.- 이미지 빌드할 때 실행된다.
- 애플리케이션 업데이트 및 배치에 주로 사용되는 명령
COPY
와 어떻게 순서가 놓여지느냐에 따라 진행이 달라진다.
* 여기까지 도커 빌드 과정에서 실행되며 그 결과 새로운 이미지가 만들어진다
CMD
만들어진 이미지를 도커 컨테이너로 실행하기 전에 먼저 실행할 명령을 정의
CMD ["<명령>"]
helloworld
를 실행하는 명령어를 써줬다.- 컨테이너를 시작할 때 한 번 실행된다.
- 애플리케이션 자체를 실행하는 명령
만약 아래와 같은 코드라면
CMD ["go", "run", "/echo/main.go"]
$ go run /echo/main.go
이 코드와 같은 명령을 수행한다.
** CMD
명령 오버라이드
- Dockerfile 의
CMD
에서 명령을 지정해줬어도 CLI에서run
명령어를 사용할 때 써준 명령이 우선이므로 오버라이드 된다.
ENTRYPOINT
컨테이너 안에서 실행할 프로세스 지정 (bash
, ssh
..)
ENTRYPOINT ["go"]
- default는
bash
go
로 실행된다.
LABEL
이미지를 만든 사람의 이름 표기
ENV
도커 컨테이너 안에서 사용할 수 있는 환경변수 지정
ARG
이미지를 빌드할 때 정보를 함께 넣기 위해 사용
- 이미지를 빌드할 때만 사용할 수 있는 일시적인 환경변수
반응형
LIST
'Docker' 카테고리의 다른 글
[Docker] Volume Mount(볼륨 사용하기) (1) | 2020.03.26 |
---|---|
[Docker] 이미지 빌드와 컨테이너 실행 (0) | 2020.03.24 |
[Docker] 도커란? (What is Docker) (0) | 2020.03.23 |
[Docker] 컨테이너란? (What is Container) (0) | 2020.03.22 |
[Docker] 하이퍼바이저란? (What is Hypervisor) (0) | 2020.03.20 |