Dockerfile이란?
- docker 의 이미지를 직접 생성하기 위한 용도로 작성하는 파일
- 기본이 되는 이미지를 지정한 후, 특정 패키지를 설치하거나 파일을 추가하는 등의 작업을 통해 사용자가 직접 이미지를 빌드하고 사용 가능
Dockerfile 작성하기
# 빌드할 때 사용할 이미지를 지정해줍니다.
FROM httpd:latest
# 현재 경로에 존재하는 index.html 파일을 컨테이너 내부로 복사합니다.
COPY ./index.html /usr/local/apache2/htdocs/index.html
Dockerfile에서 자주 사용되는 문법
# 빌드할 때 사용할 이미지를 지정
FROM httpd:latest
# 지정한 명령어 실행
RUN mkdir /app/
# docker 이미지에서 사용될 기본 경로 지정
WORKDIR /app/
# 지정한 파일을 컨테이너 내부로 복사
COPY ./app/ /app/
# 이미지에서 사용될 환경변수를 지정
ENV DEBUG 1
docker-compose.yml
version: '3.8' # docker-compose.yml에 사용될 문법 버전을 정의합니다.
services:
example: # 서비스 이름을 지정합니다. 서비스 이름은 컨테이너끼리 통신할 때 사용됩니다.
container_name: example # 컨테이너 이름을 지정합니다.
build: . # 현재 경로에 있는 Dockerfile을 사용해 이미지를 생성합니다.
ports: # 포트포워딩을 설정해줍니다.
- 80:80 # 외부에서 80 포트로 접속했을 때 컨테이너의 80 포트로 연결해줍니다.
restart: always # 컨테이너가 종료됐을 때 다시 실행시켜 줍니다.
index.html을 직접 만들고 docker 실행해보기
vi index.html : 내용 추가
sudo docker compose up --build -d
>> Dockerfile을 수정하고 이미지를 새로 빌드해야 할 때는 --build 옵션을 추가해서 사용
'Docker' 카테고리의 다른 글
docker-compose.yml 두 개 이상의 컨테이너 생성하기 (1) | 2023.06.01 |
---|---|
Docker entrypoint (1) | 2023.06.01 |
Docker volume (4) | 2023.06.01 |
Docker compose, port forwarding (2) | 2023.05.31 |
Docker 설치 및 docker container (2) | 2023.05.31 |