티스토리 뷰

○ hello.c 내용

더보기

int main()
{
        printf("hhhhhh container \n");
        return 0;
}

 

 

○ Dockerfile 생성

 FROM ubuntu:18.04
 RUN apt-get update
 RUN apt-get install -y gcc
 COPY src/hello.c /tmp
 WORKDIR /tmp
 RUN gcc -o hello-world hello.c
 CMD ["/tmp/hello-world"]

 

▷ sample1 로 이미지파일 생성

[vagrant@docker1 work]$ docker build -t sample1 .

 

▷ sample1 의 크기

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
sample1      latest    fcaafc807ef9   45 seconds ago   221MB

 

 

 

○ 두번째 Dockerfile 생성 

# FROM 이 두 번 나온 멀티스테이지라고 한다

# AS 는 기본값이 첫번째부터 0 .. 1 .. 2 .. 로 시작한다 ( 원래는 숫자 )

# 따라서 AS 로 문자로 별명을 준 것 ( 보기 좋게 )

 

 

>> 첫번째 FROM 이 빌드를 위한 구역

>> 두번째 FROM 은 실행을 위한 구역

>> 첫번째 구역에 AS가 없다면 COPY - - from = 0 으로 가능하다

 FROM ubuntu:18.04 AS build-image
 RUN apt-get update
 RUN apt-get install -y gcc
 COPY src/hello.c /tmp
 WORKDIR /tmp
 RUN gcc -o hello-world hello.c
 
 FROM ubuntu:18.04 AS runtime-image
 COPY --from=build-image /tmp/hello-world .
 CMD ["./hello-world"]

 

 

▷ 이미지 생성

[vagrant@docker1 work]$ docker build -t sample2 .

 

 

 

▷이미지의 크기

>> 멀티 스테이지 이미지는 크기를 작게 만들 수 있다

[vagrant@docker1 work]$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED             SIZE
sample2      latest    2ec84cb9d603   36 seconds ago      63.2MB
sample1      latest    fcaafc807ef9   26 minutes ago      221MB

'Docker 와 Container' 카테고리의 다른 글

Docker image upload  (0) 2024.03.06
LAB1  (0) 2024.03.05
Dockerfile - SCRATCH  (0) 2024.03.05
Dockerfile - ONBUILD  (0) 2024.03.05
Dockerfile - ARG / COPY / VOLUME  (0) 2024.03.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함