지난 포스트에서 Dockerfile을 만들었고, Dockerfile의 명령어에 대해서 알아보았습니다. 이제 만든 Dockerfile으로 이미지를 만들어 보는 실습을 해보겠습니다.
현재 만들어진 Dockerfile의 내용은 다음과 같습니다.
이제 Docker 클라이언트를 사용하여 빌드 프로세스를 통해 이를 실행해야 합니다. Node.js용 Dockerfile을 어떻게 가져와 실제로 이미지를 만들 수 있을까요?
이미지 만들기
이미지를 만드는 빌드 명령어 docker build로 이미지를 만들 수 있습니다.
docker build -t <username>/node .
-t는 --tag의 숏컷이고 뒤에 태그 이름을 넣어줍니다. 태그 뒤에 오는 점(.)은 빌드 컨텍스트를 의미합니다.
위 폴더는 실제로 실행될 폴더가 될 것입니다.
docker build -f Dockerfile -t fronquery/node .
-f 로 Dockerfile을 지정하고 있습니다. 만약 도커파일의 이름이 "Dockerfile"이 아닐 경우 -f 도커 파일을 지정해 줄 수 있습니다.
빌드가 완료 되었습니다.
docker image ls 로 방금 만들어진 이미지를 조회해 보겠습니다.
이미지가 생성된 걸 확인해 볼 수 있습니다.
이제 컨테이너를 실행해 보겠습니다.
docker run -d -p 3000:3000 fronquery/node
-d 옵션으로 데몬 모드에서 실행하고 있습니다. -p로 호스트의 3000 포트를 컨테이너의 3000 포트로 연결했습니다.
컨테이너가 작동 중인지 docker container list 명령어로 알아볼 수 있습니다.
COMMAND를 보면 컨테이너가 시작되고 node app.js를 실행했다는 걸 볼 수 있습니다. Dockerfile의 ENTRYPOINT에 기재했던 내용입니다. 그리고 포트가 어떻게 포워드 되는지 정보도 확인할 수 있습니다.
웹 브라우저에서 확인해보겠습니다. 호스트에서 3000 포트를 지정했으므로 localhost:3000으로 접속하면 됩니다. 그러면 container의 3000 포트로 연결해 줍니다.
node.js환경의 express가 컨테이너를 통해 잘 작동하네요!!
컨테이너의 정지는 docker stop <containerID>로 가능합니다.
여기까지 이미지를 빌드하는 실습을 해보았습니다. 감사합니다
'Container > Docker' 카테고리의 다른 글
[Docker] 두 컨테이너 연결, 노드 컨테이너와 몽고디비 컨테이너 연결하기 (0) | 2022.04.25 |
---|---|
[Docker] 도커 컨테이너 서로 연결하기 (이름으로 연결, legacy linking) (0) | 2022.04.24 |
[Docker] Dockerfile 만들기 (0) | 2022.04.20 |
[Docker] Dockerfile 이란? 도커파일 개념 잡기 (0) | 2022.04.18 |
[Docker] 실행환경은 컨테이너, node 소스 코드는 호스트pc 볼륨에 연결하기 (0) | 2022.04.14 |
최근댓글