728x90
1. 개 요
본 문서에서는 Dockerfile을 작성하여 Image Build 하는 방법을 설명합니다.
Image Build를 하기전에 Docker 설치가 선행되어야 합니다.
- Docker 설치 참고 URL : https://sh-it-work.tistory.com/37
[Docker]설 치
설치 환경CentOS7 Version과 CentOS8 Version 설치 시 차이가 존재. 7번전에는 yum 명령어를 통해 Docker Package가 검색 되지만, 8버전은 되지 않음.참고 링크 주소CentOS7 : https://docs.docker.com/engine/install/centos/#pre
sh-it-work.tistory.com
2. Dockerfile
2.1. Dockerfile
- Dockerfile은 Docker Image를 생성하기 위한 Script
- 여러 가지 명령어를 토대로 Dockerfile 작성한 후 Build
- Docker는 Dockerfile에 나열된 명령문을 차례대로 수행하며 Docker Image를 생성
- Dockerfile로 이미지 구성을 확인 가능
2.2. Dockerfile Build 명령어
docker build -f Dockerfile -t [이미지 이름:이미지 버전] [Dockerfile의 위치]
- Docker Image Build 참고 URL : https://docs.docker.com/reference/cli/docker/image/build/
docker buildx build
docs.docker.com
2.3. Dockerfile Tag
항목명 | 내 용 |
From | Build에 사용할 BASE Image 지정 |
LABEL description=“string | 이미지에 대한 설명 |
MAINTAINER | 이니셜 <mail> 작성자 표시 |
WORKDIR | Build에 사용할 작업 디렉터리를 변경 |
COPY | 파일이나 디렉터리 복사하는 경우 사용 |
ADD | 원격에서 파일을 내려 받기, 복사하는 경우 사용 |
RUN | 특정 명령어를 일시적으로 실행 |
EXPOSE | 컨테이너 실행 시 특정 포트를 호스트에 노출하기 위해서 사용 |
CMD | docker run 실행 시, 추가적인 명령어에 따라 설정한 명령어를 수정하고자 할 때 사용 |
ENTRYPOINT | docker run 실행 시, 추가적인 명령어의 존재 여부와 상관없이 무조건 실행되는 명령어 |
3. Image Build
본 문서에서는 WEB(WebtoB) tar file을 이용하여 WebtoB Image를 만드는 방법을 예시로 설명합니다.
3.1. Image Build 디렉터리 구성
Image Build 작업을 수행할 디렉터리 구성을 아래와 같이 설정하였습니다.
3.2. Dockerfile 내용
FROM debian:bookworm-slim #BASE IMAGE 설정
USER root
ENV TZ=Asia/Seoul #Timezone 설정
RUN mkdir -p /home/webtob
WORKDIR /home/webtob
ADD WebtoB-5.0.0.4.tar.gz ./
# Container안 환경 변수 설정
ENV WEBTOB_HOME=/home/webtob
ENV WEBTOBDIR=$WEBTOB_HOME
ENV PATH=$PATH:$WEBTOB_HOME/bin
ENV LD_LIBRARY_PATH=$WEBTOB_HOME/lib
ENV WEBTOB_CONFIG_FILE=$WEBTOB_HOME/config/http.m
COPY license/license.dat $WEBTOB_HOME/license/license.dat
COPY start.sh /home/webtob/start.sh
COPY config/http.m_org $WEBTOB_HOME/config/http.m
CMD ["/home/webtob/start.sh"]
3.3. build.sh 내용
#!/bin/bash
docker build -f Dockerfile --no-cache --force-rm -t webtob_5.0.0.4:v1 .
3.4. Image Build 진행
- Image Build 진행
$ cd /webtob #Dockerfile이 있는 경로에서 실행
$ ./build.sh
- Image 생성 확인
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
webtob_5.0.0.4 v1 3d30fd008a5d 57 seconds ago 107MB
- 생성한 Image 실행
- Container 내부 포트 80을 외부 8080 포트를 통해 연결
$ docker run -d -p 8080:80 webtob_5.0.0.4:v1
- 컨테이너 실행 확인
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
307b6ba4cdb5 webtob_5.0.0.4:v1 "/home/webtob/start.…" 2 seconds ago Up 2 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp
- 서비스 호출 확인
$ curl localhost:8080/index.html
WebtoB docker image build test
728x90
'Docker' 카테고리의 다른 글
[Docker] Ubuntu 이미지 빌드시 timezone 설정 (1) | 2024.10.14 |
---|---|
[Docker]설 치 (0) | 2023.09.14 |