수복의 프로그래밍 여행기
article thumbnail

방법

 

도커 파일을 만들기 전에 만드는 이유가 있습니다.

  • 이미지 만드는 방식이 두 가지 중 나만의 방식으로 만들 수 있음
  • 나만의 방식은 이미지를 정의하는 것

이미지로 본다면 아래와 같습니다.

 

 

이렇게 만드는 방법은 아래와 같습니다.

 

※ Dockerfile 파일 생성

 

 

확장자는 필요없지만, 앞에 대문자는 중요합니다.

 

이렇게 생성한 도커 파일에 안에는 도커가 작동할 수 있도록 명령어를 적습니다.

 

FROM

가장 먼저 배우는 문법인 필수 명령어 FROM 입니다.

FROM [IMAGE 이름]
FROM [IMAGE 이름]:[Tag 이름]

 

역할은 베이스 이미지를 생성합니다. 베이스는 기본이라는 뜻으로 가장 기본적인 것을 설치한다고 볼 수 있습니다.

 

윈도우 설치하면, 엣지가 설치되어 있고 맥을 이용하면 사파리가 설치된 것으로 비유할 수 있습니다.

 

예시로 Node 20 버전을 설치한다면?

 

FROM node:20

 

이렇게 입력하면 됩니다.

 

그럼 입력한 FROM 값을 입력해 볼 차례입니다.

 

docker build -t node-test-server .

 

build 는 docker file 을 빌드한다는 것이고

-t 옵션은 이름을 정하는 것인데 그 뒤에 이름을 node-tset-server 라고 정하겠다는 것입니다.

마지막으로 어디에 있는 Dockerfile 파일을 실행할 것인가를 나타내므로

실행하는 파일이 같은 폴더에 있을 때 . (상대경로)를 입력해 실행할 수 있도록 합니다.

 

 

그럼 docker image ls 라는 명령어를 통해 이미지가 생성된 것을 볼 수 있습니다.

 

생성된 이미지로 컨테이너 생성이 가능합니다.

 

create 및 start 를 함께 할 수 있는 run 이란 명령어를 입력합니다.

docker run -d node-tset-server

 

위의 명령어를 간단히 해석하면,

  • 컨테이너를 생성 및 실행하고
  • 백그라운드 모드로 진행하며
  • 이미지는 앞에서 만든 node-test-server 라는 것을 쓰겠다

고 볼 수 있습니다.

 

컨테이너가 잘 올라가고 실행되는지 docker ps 를 입력해 봅니다.

 

하지만 아무것도 볼 수 없습니다. 그렇다면 docker ps -a로 중지된 컨테이너까지 확인해 봅니다.

 

docker ps -a 로 위와 같은 결과 값을 볼 수 있는데 상태가 exited 가 되어 있습니다.

 

이렇게 되는 이유는 아래와 같습니다.

  • Dockerfile 에 명시된 명령어가 끝나면 종료가 되게 설정

이러한 이유를 확인하기 위해 확인하는 방법이 있습니다.

 

ENDPOINT 를 설정을 통한 확인방법

모든 명령어가 끝나면 종료되기 때문에 해당 부분을 지연 시키면 확인 가능합니다.

 

그래서 확인 방법은 아래의 명령어를 입력합니다.

 

ENDPOINT ["Sleep", "500"]

 

위의 의미는 sleep 명령을 실행하는 것으로 컨테이너가 500초 동안 실행되다가 자동으로 종료하는 것입니다.

 

해당 구문을 추가 후 Build 하면 이미지가 추가 된 것을 볼 수 있습니다.

 

docker build -t node-test-server03 .

 

 

그리고 이미지가 있으니 생성 및 실행합니다.

 

확인을 위해 docker ps 를 입력하면 아래와 같은 결과를 가지고 올 수 있습니다.

 

 

여기서 Command 에 들어간 명령어가 실행되어 500초 이후에 종료될 것이라고 예측가능합니다.

 

확실한 확인을 위해 아래의 명령어를 통해 생성한 컨테이너에 접속도 가능합니다.

docker exec -it 1753 bash

 

반응형
profile

수복의 프로그래밍 여행기

@컴수복

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!