컨테이너 이미지 파일의 구성예 : 레이어 저장방식을 사용함
여러개의 레이어로 이루어진 이미지들이 하나의 파일 시스템으로 보이는건 모든 레이어들을 union filesystem 방식으로 사용하기 때문임.
컨테이너를 생성할 때도 레이어 방식을 사용하는데, 기존의 이미지 위에 읽기/쓰기 레이어를 추가한다.
(참조 https://cultivo-hy.github.io/docker/image/usage/2019/03/14/Docker%EC%A0%95%EB%A6%AC/ )
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
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가 되므로.
==============================================
'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 |
댓글