개요
Dockerfile은 텍스트 파일로서 이미지(image)를 빌드 할때 호출 할 수 있는 명령어(+인자) 목록을 담고 있다.
주요 명령어
주요 명령어로는 FROM, CMD, ENTRYPOINT, VOLUME, ENV이 있다.
예시)
#Pull base image
FROM ubuntu
#Install Apache
RUN apt-get update -y && apt-get install apache2 apache2-utils -y#Define default port
EXPOSE 80
ENTRYPOINT [ "/usr/sbin/apache2ctl" ]#Define default command
CMD [ "-D", "FOREGROUND" ]
FROM : 도커 이미지 이름을 적는다
RUN : 사용할 디펜던시와 라이브러리 설치 Command를 적는다. ex) pip, opencv
EXPOSE : 디폴트 아파치 포트 번호를 적는다 (웹 쪽은 잘 몰라서 이부분은 잘 모르겠다)
ENTRYPOINT : 아파치 서버가 실행 될 수 있게 한다. 실행 파일을 바로 실행하는 이미지 생성하고자 하는 것 같다. (웹 쪽은 잘 몰라서 이부분도 잘 모르겠다)
빌드
sudo docker build -t ubuntu:Apache_Server .
-t : 도커 이미지를 테깅한다 (Dockerfile 안에 빌드 할 이미지가 명시되어 있는데 왜 해주는 지는 이해가 되지 않는다)
. : Dockerfile이 있는 위치를 지정한다
컨테이너 생성
sudo docker run --name Apache_Instance -p 80:80 -d ubuntu:Apache_Server
- name : 컨테이너 이름 설정
- -p : 컨테이너를 포워딩 할 포트 번호
확인
$ sudo docker ps
f49877210e7d ubuntu:Apache_Server "/usr/sbin/apache2ctl" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp Apache_Instance
결론)
- Dockerfile은 이미지를 생성 해주는 스크립트 역할을 한다. 컨테이너 생성은 아니다.
- 필요한 라이브러리와 디펜던시를 이미지를 빌드 할 때 추가해 놓고 Dockerfile만 관리하면 편리할 것이다.
ex) tensorflow-gpu Dockerfile, pytorch + openCV Dockerfile
출처
How to Create a Docker Container using Dockerfile (hostpresto.com)
'시스템 > Git, Docker' 카테고리의 다른 글
원격 서버에 Jupyter NoteBook으로 접근하기 (0) | 2022.05.20 |
---|---|
commit --amend (0) | 2021.08.24 |
git (init , add, commit, reset) 설명 (0) | 2021.06.03 |
Git pull/push 시 Password 물어보지 않도록 설정하기 (0) | 2021.04.29 |
Git 명령어 정리 (0) | 2020.11.06 |