Dockerfile
도커이미지를 작성할 때 어떤 스크립트를 실행시키는 것을 dockerfile 이라고 한다.
Dockerfile 작성하기
vi에디터로 아래와 같이 작성 (파일이름을 Dockerfile로 저장해야한다.)
FROM httpd
COPY ./webapp /usr/local/apache2/htdocs
CMD ["httpd-foreground"]
FROM : 기본이 될 이미지를 지정해준다.
COPY : 복사명령어 (./webapp 디렉토리내용을 /usr/local/apache2/htdocs 에 복사하라는 의미 )
CMD : 실행할 명령어 (httpd를 실행시킨다.) → Dockerfile에서 한번만 작성할 수 있다. (여러 개의 CMD를 입력하면 맨 마지막 CMD만 유효하다.)
※ COPY와 -v (volume)의 차이
- COPY는 Dockerfile에서 사용 / -v는 run 옵션 중 하나이다.
- COPY는 복사이고 -v는 링크를 거는 것이기 때문에 COPY된 파일을 수정해도 원본은 수정되지 않지만 -v 로 지정된 파일을 컨테이너에서 수정하면 원본인 HOST에 있는 파일이 수정된다.
Dockerfile 빌드하기
docker build -t [생성할이미지명]:[태그명] [dockerfile위치]
docker build -t webserver ./
도커파일을 빌드하는 것은 이전 시간에 한 docker commit과 비슷한데 docker build의 경우 Dockerfile을 가지고 이미지를 만드는 차이가 있다고함.
두 번째 파라미터로 경로만 넘겨준다면 "Dockerfile" 이름을 가진 파일을 알아서 찾아서 빌드해준다고 함.
(만약 Dockerfile이 Dockerfile 이름으로 저장되어 있지 않다면 -f 옵션으로 도커파일명 을 명시해주어야한다.)
docker build -t sample -f Dockerfile-base ./
Dockerfile 빌드한 이미지 확인하기
docker images
빌드결과가 이미지로 제대로 반영되었는지 확인한다.
'코딩이야기 > Docker' 카테고리의 다른 글
도커 입문 15강 - docker file step3 - RUN 명령어 (0) | 2024.06.26 |
---|---|
도커 입문 14강 - docker file step2 - Entrypoint와 Workdir (0) | 2024.06.18 |
도커 입문 12강 - docker commit 이미지 굽기와 docker hub업로드 (0) | 2024.06.17 |
도커 입문 11강 docker volume 옵션으로 폴더 연결하기 (0) | 2024.06.14 |
도커 입문 10강 - docker exec 명령어 변경 (1) | 2024.06.13 |