TIL

[Git 활용 및 devops / mlops] 로컬 개발 머신에서 Docker 이미지를 만들고 테스트하기 (feat. nginx)

 

도커에 대해 차근차근 알아가기 위해

로컬에서 live server로 실행해봤던 html,js,css 파일들로 구성된 간단한 파일들을 

nginx로 띄우고

도커에서 nginx 이미지를 만들어 테스트해보려고 한다.

brew install nginx #nginx 설치

nginx -t #configuration file 위치

여기서 nginx.conf 파일에서 location root를 내 개인 프로젝트 경로로 바꿔주고

nginx #서버 실행

서버를 실행하면 localhost:8080에서 잘 나오는 것을 볼 수 있다.

 

사실 로컬에서 이렇게 띄워서 결과물을 확인해볼 수도 있지만,

도커에서 띄워 확인해볼 수 있다.

도커 컨테이너의 무수한 장점이 있지만 일단 도커 컨테이너를 사용한다면, 로컬 환경설정을 잡아준다던가 하는 귀찮은 일을 하지 않아도 된다.

nginx -s stop #서버 중지

 

사전 요구사항은 아래의 링크를 참고하였다.

 

Visual Studio Code Docker 앱 시작

Docker 앱을 업데이트하고 VS Code와 앱을 공유하는 방법을 알아봅니다.

learn.microsoft.com

도커 데스크탑까지 깔았다면 이제 본격적인 시작이다.

 

docker pull ngix 을 해봤더니 에러가 나서 로그인을 docker login을 해줬다.

docker pull ngix
Using default tag: latest
Error response from daemon: pull access denied for ngix, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

 

그리고 아래와 같이 이렇게만 한다면 nginx가 제공하는 디폴트 화면으로 동작하게 된다.

docker login

docker build -t some-content-nginx .

docker run --name some-nginx -d some-content-nginx

 

내 프로젝트에 있는 것을 docker로 띄우려고 한다면

Dockerfile 파일을 생성하고 수정해야한다.

파일 내용은 다음과 같다.

FROM nginx
COPY ./ /usr/share/nginx/html

/usr/share/nginx/html -> 이 경로는 도커 경로를 의미한다.

따라서 ./에 있는 것들을 복사해서 /usr/share/nginx/html  경로로 복사한다.

 

docker build -t some-content-nginx .
docker run --name some-nginx -d -p 8080:80 some-content-nginx

도커 빌드를 하면 some-content-nginx 이미지가 생성되고

해당 이미지를 띄워주는 컨테이너(some-nginx)를 도커 허브에서 확인해볼 수 있다.

로컬과 똑같이 localhost:8080으로 들어가면 도커 run한 프로젝트를 바로 확인해볼 수 있다.

 

참고 :

 

nginx - Official Image | Docker Hub

Quick reference Supported tags and respective Dockerfile links 1.25.1, mainline, 1, 1.25, latest, 1.25.1-bookworm, mainline-bookworm, 1-bookworm, 1.25-bookworm, bookworm 1.25.1-perl, mainline-perl, 1-perl, 1.25-perl, perl, 1.25.1-bookworm-perl, mainline-bo

hub.docker.com

 

8/20 Nexters 8주차 : Docker 기반 배포

넥스터즈가 벌써 8주차로 곧 끝이 보이고 있다. 시간 진짜 빠르다... 내가 맡은 개발 분량은 끝났다. 개발중인 API가 완료되면 API 호출하는 거랑 정적 페이지 하나랑 리팩터링 정도 남은거 같다 그

coffeeandcakeandnewjeong.tistory.com

 

Nginx 명령어 모음

nginx : 기동nginx -s stop : 정지nginx -s reload : 재기동nginx -t 설정파일 체크/etd/nginx : main 설정파일 위치/etc/nginx/conf.d/ : 각 서버용 설정파일 위치

velog.io

 

'TIL' 카테고리의 다른 글

업무 중 참고한 사이트 01.26  (0) 2024.01.26
크롤링용 API 제공을 위한 API ROUTE 트러블 슈팅 기록 (Nextjs)  (0) 2024.01.10
02.05  (0) 2023.02.07
02.07  (0) 2023.02.07
2922.11.21  (0) 2022.11.21