이번에는 Dockerfile을 이용해서 이미지를 만들어 보겠습니다. 기본 파일명은 Dockerfile 입니다. 해당 이름으로 파일을 열어 다음과 같이 입력합니다.
FROM alpine
RUN apk add --no-cache --virtual .build-pkg gcc libc-dev make g++ perl linux-headers
ADD http://nginx.org/download/nginx-1.16.1.tar.gz /app/work/
ADD https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz /app/work/
ADD https://www.openssl.org/source/openssl-1.1.1c.tar.gz /app/work/
ADD http://zlib.net/zlib-1.2.11.tar.gz /app/work/
RUN cd /app/work \
&& tar xfz nginx-1.16.1.tar.gz \
&& tar xfz pcre-8.43.tar.gz \
&& tar xfz openssl-1.1.1c.tar.gz \
&& tar xfz zlib-1.2.11.tar.gz \
&& cd nginx-1.16.1 \
&& ./configure --prefix=/app/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=../pcre-8.43 --with-openssl=../openssl-1.1.1c --with-zlib=../zlib-1.2.11 \
&& make \
&& make install \
&& mkdir -p /var/log/nginx \
&& rm -rf /app/work \
&& apk del .build-pkg \
&& echo "daemon off;" >> /app/nginx/conf/nginx.conf
EXPOSE 80
ENTRYPOINT ["/app/nginx/sbin/nginx"]
위에 사용된 명령어는 다음과 같습니다.
명령어
|
내용
|
FROM
|
기초 이미지명
|
RUN
|
이미지 내에서 진행할 명령어 집합
|
ADD or COPY
|
이미지 내 파일 복사
ADD의 경우 외부 파일도 전송할 수 있습니다.
|
ENTRYPOINT
|
이미지 실행 시 실행되는 명령어
|
자세한 내용 및 추가적인 사항은 아래 사이트에서 확인이 가능합니다.
Dockerfile을 작성 후 아래 명령어를 실행하면 도커 이미지를 생성하기 시작합니다. Dockerfile이 기본 이름이지만 다른 이름으로 만들었다면 -f 옵션을 통해 해당 파일을 지정하면 됩니다. 이미지 생성이 완료되면 기존에 이미지를 실행한 것과 동일하게 사용하시면 됩니다.
docker build -t gntpapa/test:0.1 .
Dockerfile의 장점은 설치 정보를 문서화 하여 관리 할 수 있다는 것 입니다. Github / Gitlab 등을 활용하면 관리자가 퇴사하여도 어떻게 설치 되었는지 쉽게 확인이 가능하게 됩니다. 또한 추가 설치 패키지도 쉽게 적용 및 관리가 가능해집니다.
'가상화 > docker' 카테고리의 다른 글
#6 docker - Private 이미지 저장소 (0) | 2019.11.25 |
---|---|
#5 docker - Public repository 1 (0) | 2019.10.07 |
#3 docker - 개인 이미지 제작 - 1 (0) | 2019.09.09 |
#2 docker - 컨테이너 hello world (nginx 실행) (0) | 2019.08.27 |
#1 docker 설치 (0) | 2018.08.19 |