본문 바로가기
Infra/Docker_K8S

DockerFile 작성법1

by 골든크랩 2022. 7. 30.
728x90
반응형

 

컨테이너 이미지 파일의 구성예 : 레이어 저장방식을 사용함

여러개의 레이어로 이루어진 이미지들이 하나의 파일 시스템으로 보이는건 모든 레이어들을 union filesystem 방식으로 사용하기 때문임.

 

컨테이너를 생성할 때도 레이어 방식을 사용하는데, 기존의 이미지 위에 읽기/쓰기 레이어를 추가한다.

(참조 https://cultivo-hy.github.io/docker/image/usage/2019/03/14/Docker%EC%A0%95%EB%A6%AC/ )

 

[Docker] 개념 정리 및 사용방법까지.

 

cultivo-hy.github.io

 

 

Dockerfile : 도커 이미지 파일의 청사진

 

Docker  빌드 명령어

▶ 기본 빌드 명령어:

- docker build -t <생성할 이미지명> <빌드할 코드 경로>

 

▶ dockerfile 지정을 위한 -f 옵션 적용

- docker build -t <생성할 이미지명> -f < dockerfile 파일명> <빌드할 코드 경로>

 

 

일반적인 절차는...

1. 서브디렉토리 생성

2. Dockerfile 만들기

3. docker build -t ~~

 

Docker 빌드를 위해 Jenkins를 활용할 수도 있다.

https://medium.com/avmconsulting-blog/automated-ci-cd-with-jenkins-39b21c7c8035

 

Automated CI/CD with Jenkins

CI CD Pipeline implementation or the Continuous Integration/Continuous Deployment software is the backbone of the modern DevOps…

medium.com

 

Dockerfile에서 나오는 특수문자

'&&' - 논리연산(AND)의미

  ex) cp && cal => 실행안됨. cp 명령어가 파라미터가 없어 실패남

  ex) cal && cp => 실행됨. cal 참이라 cp 도 확인해야 함

 

'||' - 논리연산(OR)의 의미

 ex) cal && cp

 ex) cp && cal

 

';' - 한줄에다가 명령어를 다 쓸때

 

 

 

=============================================

FROM centos:centos7

 

FROM절 하나라도 이미지를 만들수 있다.

현재위치에 만들때.....맨마지막 옵션이 위치.  파일명을 지정하지 않으면 Docker 파일을 읽는다.

docker build -t first .

확인 : docker images

=============================================

FROM ubuntu

RUN  apt-get update && apt-get install -y -q nginx

COPY index.html /var/www/html/

CMD ["nginx", "-g", "daemon off; " ]

 

명령어마다 레이어가 만들어짐.

&& 연산자는 명령어가 정상적으로 실행되어야, 뒤에거가 실행됨.

|| 연산자는 

 

현재위치에 만들때.....맨마지막 옵션이 위치

docker build -t second -f Dockerfile.1 . 

확인 : docker images

==============================================

 

FROM ubuntu

RUN  apt-get update && apt-get install -y -q nginx && rm -rf /var/lib/apt/lists/*

COPY index.html /var/www/html/

CMD ["nginx", "-g", "daemon off; " ]

 

주)

rm -rf /var/lib/apt/lists/* 명령을 추가하면 이미지 파일사이즈가 작아진다.  단, 이 문장을 다음 라인으로

내리면 레이어가 달라져 의미가 없어지게 된다. 왜냐하면, 이전 행(line) 전체가 Lower Layer가 되므로.

==============================================

 

 

 

 

728x90
반응형

'Infra > Docker_K8S' 카테고리의 다른 글

Dockerfile작성법3 - EXCUTE 방식에서 쉘변수 인식  (0) 2022.07.31
Dockerfile 작성법2 - CMD, ENTRYPOINT  (0) 2022.07.31
도커 이미지 올리기  (0) 2022.07.30
docker login  (0) 2022.07.30
docker login  (0) 2022.07.30

댓글