티스토리 뷰
Dockerfile이란 도커 이미지를 생성하기 위한 스크립트 파일
여러 키워드를 사용하여 dockerfile을 작성하여 빌드를 보다 쉽게 수행할 수 있다.
Dockerfile에서 사용하는 주요 키워드
FROM
: FROM 키워드를 사용하여 base가 되는 image를 지정 주로 OS 이미지나 런타임 이미지를 지정함
RUN
: 이미지를 빌드할 때 사용하는 커맨드를 설정할 때 사용
ADD
: 이미지에 호스트의 파일이나 폴더를 추가하기 위해 사용
만약 이미지에 복사하려는 디렉토리가 존재하지 않으면 docker가 자동으로 생성
COPY
: 호스트 환경의 파일이나 폴더를 이미지 안으로 북사하기 위해 사용
‘ADD’와 동일하게 동작하지만 가장 확실한 차이점은 URL을 지정하거나, 압축파일을 자동으로 풀지 않음
EXPOSE : 이미지가 통신에 사용할 포트를 지정할 때 사용
ENV : 환경 변수를 지정할 때 사용
여기서 설정한 변수는 $name, ${name} 의 형태로 사용할 수 있음
추가로 아래와 같은 문법을 사용하여 사용할 수도 있음
-${name:-else} : name이 정의가 안되어 있다면 ‘else’가 사용됨
CMD :
도커 컨테이너가 실행될 때 실행할 커멘드를 지정
‘RUN’과 비슷하지만 CMD는 도커 이미지를 빌드할 때 실행되는 것이 아니라 컨테이너를 시작할때 실행된다는 것이 다름
ENTRYPOINT :
도커 이미지가 실행될 때 사용되는 기본 커멘드를 지정(강제)
WORKDIR :
RUN, CMD, ENTRYPOINT 등을 사용한 커맨드를 실행하는 디렉토리를 지정 -w 옵션으로 오버라이딩 할 수 있음
VOLUME :
퍼시스턴스 데이터를 저장할 경로를 지정할 때 사용
호스트의 디렉토리를 도커 컨테이너에 연결
주로 휘발성으로 사용되면 안되는 데이터를 저장할 때 사용
docker build 커맨드
dockerfile을 실행하기 위해서는 docker build 커맨드를 사용
docker build ${option} ${dockerfile directory}
ex) docker build -t test .
실습 예제
index.html 과 Dockerfile
Dockerfile 파일 위치
C:\intellij\around-hub\around-hub-docker\study_material\220924-dockerfile example
해당 파일 위치에서 Dockerfile 빌드 실행 명령어
docker build -t test123 .
( 점은 dockerfile 위치를 의미 해당 위치는 dockerfile이있는 폴더 내부에 있기에 점을 지정)
실행 결과 화면 :
test123 이미지가 생성된걸 확인 할 수 있다.
만약 test123을 실행시 test123:1.1이라고 지정할 경우
docker build -t test123:1.1 .
TAG 부분에 표시되어 버전 처럼 구분 할 수 있다.
Dockerfile로 생성된 이미지 컨테이너에 띄우기
docker run --name test123_app -p 80:80 test123( -t가 붙을 경우 백그라운드에서 돌도록 하는것)
실행 결과
: 컨테이너가 띄워진 것을 확인 및 localhost로 확인 가능
'linux > docker' 카테고리의 다른 글
Docker 컨테이너와 외부 폴더 간의 연결에 대한 회고… (0) | 2024.09.19 |
---|---|
Docker 일반 계정에 권한 부여하기 (0) | 2024.07.29 |
DockerFile 실습(SpringBoot 프로젝트 로컬에서 띄우기) (1) | 2024.02.26 |
docker compose 파일 작성하기(정리) (1) | 2024.02.26 |
Docker(기초) 컨테이너 및 이미지 실행 명령어 이해 (0) | 2023.12.26 |
- Total
- Today
- Yesterday
- 캘린더
- spring
- leatcode
- 네이버 클라우드
- 알고리즘
- LocalDate
- Java
- 개념 이해하기
- hazelcast
- dockerfile
- 권한
- docker
- 정의
- 캐시
- 도커
- centos7
- mybatis
- 리눅스
- insert
- 이미지
- dfs
- Linux
- MySQL
- 격리수준
- Cache
- Lock
- 스케줄러
- ncp
- Quartz
- 컨테이너
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |