- Docker 에서는 인프라의 구성관리를 Dockerfile로 한다.
- 베이스가되는 이미지에 미들웨어를 설치 및 설정, 애플리케이션의 실행 모듈 전개하기 위한 실행 기반의 모든 구성 정보를 기술한다.
- 즉 Dockerfile은 Docker상에서 작동시킬 컨테이너의 구성정보를 기술하기 위한 파일.
- docker build 명렁으로 실행
Dockerfile 기본구문
- 기본예시
FROM ubuntu:latest
RUN apt-get install
docker build -t image:latest
# image 라는 이미지가 생성된다.
Dockerfile 실습
- 디렉토리 생성
mkdir docker
cd docker
- Dockerfile 생성
vim Dockerfile
FROM ubuntu:latest
- Dockerfile build 하기
docker build -t myimage:latest .
- 결과
docker images
이미지의 레이어 구조
- 이미지의 레이어 구조를 알아보자
vim Dockerfile
# STEP 1. Ubuntu base image
FROM ubuntu:latest
# STEP 2. Nginx install
RUN apt-get update && apt-get install -y -q nginx
# STEP 3. File copy
COPY index.html /usr/share/nginx/html
# STEP 4. Nginx start
CMD ["nginx","-g"."daemon off;"]
cat > index.html
Hello World Dockerfile!
# ubuntu 이미지를 베이스로 하여
# nginx를 install
# index.html file을 copy 하여
# nginx 실행
- Dockerfile을 실행해보자
docker build -t webap .
docker images
# webap이 설치됨을 볼 수 있다.
- 우분투 이미지 레이어를 한번 확인해보자
docker image inspect ubuntu:latest
- 방금 생성한 webap 의 레이어를 확인해보자
# 우분투의 Layer 4942a1 ... 이 존재함을 알 수 있다.
# 모든 작업마다 무조건 Layer가 생기는건 아니지만, 나머지 두 Layer는 이후 작업들로 인해 추가된것이다.
Dockerfile 추가작업
- Dockerfile을 수정해보자
# STEP 1. Ubuntu base image
FROM ubuntu:latest
# STEP 2. Nginx install
RUN apt-get update && apt-get install -y -q nginx
# STEP 3. File copy
COPY index.html /usr/share/nginx/html
# STEP 3.1 File copy 2
COPY index2.html /sr/share/nginx/html
# STEP 4. Nginx start
CMD ["nginx","-g"."daemon off;"]
cat > index2.html
Hello World Dockerfile2!
- 이미지를 빌드해보자
docker build -t webap2 .
# Using cashe가 뜨며 기존 정보를 그대로 가져온다
# 도커파일에 3.1 부분을 추가했지만 속도가 굉장히 빠름을 알 수 있다.
- 방금 생성한 webap2에 대한 상세정보를 확인하자. 그중 Layer를 보자
docker image inspect webap2
- webap 과 비교해보자
# 맨 마지막 레이어가 추가됨을 볼 수 있다.
'DevOps > Docker' 카테고리의 다른 글
[Docker] Container 생성, 시작 및 정지 (0) | 2021.09.16 |
---|---|
[Docker] Docker 이미지 조작 (0) | 2021.09.16 |
[Docker] 웹 서버 작동해보기 (0) | 2021.09.13 |
[Docker] Docker 설치 (0) | 2021.09.13 |
[Docker] Docker의 개요 (0) | 2021.09.13 |