-
Dockerfile - CentOS7 + HTTPD공부합시다!/Container 2023. 5. 19. 13:21728x90
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. MAINTAINER4.1. 필수지시어 아님,
4.2. 이미지를 공개할 때 작성자가 누구인지 명시
4.3. MAINTAINER skdim5. 명령어 실행(RUN)
5.1. 이미지를 생성할 때 실행할 코드를 지정
5.2 . 패키지 설치, 파일권한 변경 등
yum install –y httpd
cp /usr/share/zoneinfo/Asia/seoul /etc/localtime6. 작업 디렉토리(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 + HTTPD728x90'공부합시다! > Container' 카테고리의 다른 글
alpine linux in docker (0) 2024.05.30 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