ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dockerfile - CentOS7 + HTTPD
    공부합시다!/Container 2023. 5. 19. 13:21
    728x90

    1. Dockerfile
     1.1. docker inspect로 특정 App 실행하기 위해서 사용
     1.2. 코드 형태로 image를 제작할 수 있는 TextFile
     1.3. 특정 App를 실행하는 image 제작 
     1.4. 필수는 아니나 Dockerfile를 제작할 때에는 디렉토리 생성 후 해당 디렉토리에 접근해 사용할 것을 권장
       # mkdir /test
       # cd /test
       # vi Dockerfile
              FROM httpd:/latest
              MAINTAINER sdkim
       # docker build -t test:1.0 .
       # docker images
     1.5. 베이스 이미지, 컨테이너에서 실행되는 명령, 환경 변수 설정, 컨테이너에서 실행되는 데몬 등의 기능이 정의됨.

    2. DockerFile의 기본구성
     2.1. 리눅스 기본편집기로 작업 할 수 있는 텍스트형태의 파일
     2.2. COMMAND   Value    //  기본 형식
     2.3. COMMAND 는 지시어, 아래는 지시어의 종류 및 설명임.

    Command Description Command Description
    FROM Base Image 지정 ADD 파일추가(외부파일불러오기)
    MAINTAINER 작성자 지정 COPY 파일복사 : Local 디렉토리
    RUN 명령어 실행 VOLUME Volume Mount
    CMD 데몬실행 ENTRYPOINT 데몬실행, CMD보다 우선
    LABEL 라벨 지정 USER 사용자 설정
    EXPOSE Port 내보내기 WORKDIR 작업디렉토리 지정
    ENV 환경변수 설정 ONBUILD Build 후 실행 명령어

     

    3. 베이스 이미지 지정(FROM, MAINTAINER)
     3.1. FROM : DockerFile에서 베이스 이미지를 지정하는 지시어
     3.2. 인자로는 host, docker registry, docker hub에 존재하는 이미지만 지정
       FROM IMAGE
       FROM IMGAE:TAG
       FROM IMAGE@DIGEST

    4. MAINTAINER

     4.1. 필수지시어 아님,

     4.2. 이미지를 공개할 때 작성자가 누구인지 명시
     4.3. MAINTAINER skdim

     

    5. 명령어 실행(RUN)
     5.1. 이미지를 생성할 때 실행할 코드를 지정
     5.2 . 패키지 설치, 파일권한 변경 등
       yum install –y httpd
       cp /usr/share/zoneinfo/Asia/seoul /etc/localtime

     

    6. 작업 디렉토리(WORKDIR)
     6.1. 작업 디렉토리 지정.
     6.2. 해당 디렉토리가 없으면 생성됨.
     6.3 작업 디렉토리를 지정하면 그 이후 명령어는 해당 디렉토리를 기준으로 동작

    7. 복사(COPY)  

    7.1. 파일이나 폴더를 Image에 복사.  

    7.2. 상대 경로를 사용할 경우 WORKDIR로 지정한 디렉토리를 기준으로 복사    COPY src1 src2 .... Dest    COPY [“src1”, “src2”, ... , “dest”]

     

    8. 환경 변수(ENV)  

     8.1. Image에서 사용할 환경 변수 지정.  

     8.2 Mysql등에서 패스워드 설정 후 사용할 때.

     

    9. 컨테이너 시작 시 실행 명령(ENTRYPOINT)  

     9.1 컨테이너 시작 시 실행 명령어.  

     9.2. centos의 경우 /bin/bash  

     9.3. Exec형식과 shell 형식  

     9.4. Exec   ENTRYPOINT [“실행명령어”, ‘”인자1”, “인자2”]  

     9.5. Shell   ENTRYPOINT echo hello

     
    예시) Centos:7 + HTTPD

    728x90

    '공부합시다! > Container' 카테고리의 다른 글

    Docker: alpine + nginx Image 만들기  (0) 2023.09.11
    Podman: Container를 System Service로 관리  (0) 2023.01.25
    Docker: cp & tar 다중 파일 복사  (0) 2023.01.05
    PODMAN: Network  (0) 2022.12.20
    PODMAN: Copy와 Volume Mount  (0) 2022.12.19
Designed by Tistory.