본문 바로가기

가상화/Kubernetes

[Docker] Image Build

반응형

개요

구성환경

Docker-19.3.0, CentOS 6.7

참조 : https://docs.docker.com/engine/reference/builder/

 

예제 1) apache httpd 이미지 빌드

1. image 다운로드

 shell> docker pull httpd:2.4.41

 2. Dockerfile 편집

FROM httpd:2.4.41
MAINTAINER admin@hoya.com
WORKDIR /usr/local/apache2
COPY index.html htdocs/index.html
ADD zip.tar.gz htdocs/
  • FROM : 이미지
  • MAINTAINER : 새 레이어의 Author 필드 설정
  • WORKDIR : 새 레이어의 디렉토리로 이동
  • RUN : RUN 명령은 현재 이미지 위에 새 레이어의 명령을 실행하고 결과를 커밋합니다. 커밋 된 결과 이미지는 Dockerfile의 다음 단계에 사용됩니다.
  • COPY : 로컬 파일시스템의 새 파일 또는 디렉토리를 복사하여  경로의 컨테이너 파일 시스템에 추가합니다. dest가 상대 디렉토리일 경우 WORKDIR이 기준이 된다. wildcard(*,?, ....)를 사용할 수 있다
  • ADD : COPY와 동일하나 , 압축파일(.tar.gz)일 경우 새 레이어의 디렉토리에 추가시 압축을 해제한다.
  • CMD : docker run 실행 시 명령어를 주지 않았을 때 사용할 default 명령을 설정

3. 빌드

Usage : docker build -t <image tag> <PATH | URL>

shell> docker build -t httpd-myapp:v1 .

4. 실행

 shell> docker run -it -d -p 80:80 --name myapp httpd-myapp

 shell> curl localhost/index.html

 

예제 2)  debian 빌드

1. image 다운로드

 shell> docker pull debian:10.3

2. Docker 편집

 - procps는 /proc 파일시스템 도구로써 free, kill, pkill, pgrep, pmap, ps, pwdx, skill, slabtop, snice, sysctl, tload, top, uptime, vmstat, w, 그리고 watch가 들어있습니다.

FROM debian:10.3 
MAINTAINER admin@hoya.com 
run apt update 
run apt -y install procps
CMD top
  • RUN : RUN 명령은 현재 이미지 위에 새 레이어의 명령을 실행하고 결과를 커밋합니다. 커밋 된 결과 이미지는 Dockerfile의 다음 단계에 사용됩니다.
  • CMD : docker run 실행 시 명령어를 주지 않았을 때 사용할 default 명령을 설정

3. 빌드

 shell> docker build -t debian-top:v1 .

4. 실행

 shell> docker run -it --rm debian-top:v1

 shell> docker run -it --rm debian-top:v1
top - 15:23:38 up  2:40,  0 users,  load average: 0.12, 0.04, 0.05
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   5787.0 total,   3763.8 free,    866.9 used,   1156.3 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   4597.0 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
     1 root      20   0    8000   1652   1244 R   0.0   0.0   0:00.05 top
반응형