Dockerfile
Dockerfile이란 Docker image을 만들기 위한 절차이다.
우리가 Docker Container을 사용하기 위해서는 Docker image 파일이 필요한대 이를 생성해주는 작업을 하기 위한 사전작업이다.
Dockerfile 작성하기
node.js로 서버를 구축하고 있다고 가정한다. (node.js에 대한 지식이 없어도 이해 가능)
Dockerfile을 제외한 파일들이 존재하고 node server.js 을 열어서 요청에 대한 반응 하는 형식으로 진행된다. 이를 하기 위해서는 여러 조건이 필요한대, 그것은 아래와 같다
- node.js 설치
- npm install 을 통한 라이브러리 의존성 해결
- node server.js 을 통한 서버 실행
현재 우리는 이 과정을 Docker 이미지화 하여 컨테이너로 실행시킬 것이기 때문에, 먼저 Dockerfile을 생성 한 뒤, 이미지화 하는 작업을 진행한다.
🐋 Dockerfile
FROM node
WORKDIR /app
COPY . /app
RUN npm install
EXPOSE 80
CMD ["node", "server.js"]
- FROM <이미지> : base 이미지를 설정한다.
- WORKDIR <경로> : 컨테이너 상의 모든 명령어를 해당 경로를 기준으로 실행
- COPY <경로1> <경로2> : 컴퓨터에 있는 디렉토리 파일을 도커 이미지 파일 시스템으로 복사
- RUN : 이미지 빌드 과정에서 필요한 명령어들을 실행하기 위해 사용
- EXPOSE : 컨테이너에 들어온 트래픽을 리스닝하는 포트와 프로토콜을 지정하기 위해 사용한다. 주의할 점은 EXPOSE 명령문으로 지정된 포트는 해당 컨테이너의 내부에서만 유효하며, 호스트(host) 컴퓨터에서는 이 포트를 바로 접근을 할 수 있는 것은 아니라는 것을 명심하자
- CMD [] : 도커 이미지를 컨테이너로 뛰울 때 사용, 다른 명령어와 다르게 []을 사용하며 공백을 기준으로 나눠 문자열을 기입한다.
그리고 해당 명령어를 통해서, Dockefile을 이미지화 한다.
docker build .
# 이름: 태그를 붙이고 싶다면 아래와 같이 작성한다
docker build <name>:<tag> .
그러면 해당 이미지에 대한 이름:태그가 생성되게 된다.
이미지는 만들어졌으니 컨테이너로 실행시키면 되는데 이는 아래 명령어를 이용한다.
$ docker run -p 3000:80 <이미지 이름:태그>
만약 컨테이너를 정지하고 싶다면 아래 명령어를 이용한다.
docker stop <container_id>
'Cloud > Docker' 카테고리의 다른 글
[Docker] 환경변수, env 파일 작업 (0) | 2023.06.05 |
---|---|
[Docker] 도커 볼륨과 바인드 마운트 (0) | 2023.06.05 |
[Docker] Docker 자주쓰는 명령어 (0) | 2023.06.04 |
[Docker] 이미지 레이어 (0) | 2023.06.04 |
[Docker] 도커란 무엇인가? (0) | 2023.06.04 |