Docker - dockerfile
.dockerignore
.gitignore
파일을 작성하는 것처럼 .dockerignore
파일을 작성하면 dockerfile로 image 생성시 컨테이너에 포함되지 않을 내용을 지정해둘 수 있다.
파일 이름은 .dockerignore
1
2
# 모든 경로의 md파일 제외
**/*.md
dockerfile
이미지로 만들 docker container 내용 작성
파일 이름은 dockerfile
1
2
3
4
5
6
FROM {컨테이너 base 이미지}
COPY {호스트 파일 경로} {컨테이너 위치할 경로}
RUN {이미지 생성 중 실행할 명령어}
WORKDIR {컨테이너 작업 위치}
EXPOSE {PORT}
ENTRYPOINT {컨테이너 실행 후 실행될 명령어}
- EXPOSE 키워드는 몇번 포트를 컨테이너에서 사용한다는
문서화
용도로 사용된다.
dockerfile build
dockerfile을 build해서 image를 만든다.
1
docker build -t {IMAGE_NAME} {./path/dockerfile}
ex
dockerfile 작성
1
2
3
4
5
6
FROM nginx
COPY ./html /usr/share/nginx/html
WORKDIR /usr/share/nginx/html
RUN echo '<br><br><br>이것은 추가 텍스트' >> index.html
EXPOSE 99
ENTRYPOINT ["nginx", "-g", "daemon off;"]
- ENTRYPOINT [“nginx”, “-g”, “daemon off;”]
- container가 종료되지 않도록 nginx를 foreground로 실행
./html/index.html 내용 작성
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
헬로우
</body>
</html>
dockerfile build
1
docker build -t study-web-test .
docker image 실행
1
docker run -d -p 99:80 study-web-test
실행 결과 확인
nginx를 실행하고 외부 포트를 99로 띄웠음으로
curl 명령어를 사용해서 응답 값을 확인
1
curl http://localhost:99
응답 값
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
헬로우
</body>
</html><br><br><br>이것은 추가 텍스트
참고한 사이트
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.