logoStephen's 기술블로그

포스트 검색

제목, 태그로 포스트를 검색해보세요

#007 #NginX 직접 설치 및 실행

#007 #NginX 직접 설치 및 실행
Docker
성훈 김
2024년 6월 12일
목차

👉 ex04 : Nginx 서버 직접 설치 및 실행

notion image
Dockerfile을 ex04에 생성
Dockerfile을 ex04에 생성
 
 

👉 Dockerfile 작성

🔹 포 그라운드 테스트

notion image
도커파일을 위처럼 작성하고 테스트 해보자. 

여기서 Run은 이미지를 구울 떄 실행이 되는 것이고, CMD는 실행할 때 작동하는 곳
도커파일을 위처럼 작성하고 테스트 해보자. 여기서 Run은 이미지를 구울 떄 실행이 되는 것이고, CMD는 실행할 때 작동하는 곳
notion image
그러고 이미지를 구워보자.
그러고 이미지를 구워보자.
 
notion image
nginx로 바꿔서 실행해보자.
nginx로 바꿔서 실행해보자.
notion image
실행 해보자. ./ 경로를 적어줘도 실행된다.
실행 해보자. ./ 경로를 적어줘도 실행된다.
notion image
docker images로 이름을 찾아서 실행하면 어떻게 될까?? 유지가 될까?
docker images로 이름을 찾아서 실행하면 어떻게 될까?? 유지가 될까?
notion image
Hello World만 찍고 종료가 되었다. 
그래서 서버가 유지되게 할려면 백그라운드로 실행해야된다!!
Hello World만 찍고 종료가 되었다. 그래서 서버가 유지되게 할려면 백그라운드로 실행해야된다!!
 

🔹 백 그라운드 테스트

JavaScript
-dit 설명:
 컨테이너를 백그라운드에서 실행하고, 가상 터미널을 통해 상호작용을 가능하게 한다.
notion image
도커를 bash로 실행 시켜본다.
컨테이너 ID가 안꺼지고 살아 있다. 
bash 옵션을 달면 도커파일의 CMD를 치환한다.
도커를 bash로 실행 시켜본다. 컨테이너 ID가 안꺼지고 살아 있다. bash 옵션을 달면 도커파일의 CMD를 치환한다.
notion image
컨테이너에 접속하는 명령어 attach
컨테이너에 접속하는 명령어 attach
notion image
docker attach로 접속하면 아래처럼 CMD명령어 창이 뜬다. 
개발자로서 일반적으로 작업하는 모드를 사용하기 위해서는 -dit를 사용하자.
docker attach로 접속하면 아래처럼 CMD명령어 창이 뜬다. 개발자로서 일반적으로 작업하는 모드를 사용하기 위해서는 -dit를 사용하자.
지금 까지 프로세스 정리
지금 까지 프로세스 정리
notion image
 

👉 nginx 사용하기

notion image
find / -name nginx 로 검색이 가능
하지만 너무 많은 결과가 나오기 때문에 문서를 읽어야 
어디서 실행하는 지 알 수 있다.  도커허브로 가보자.
find / -name nginx 로 검색이 가능 하지만 너무 많은 결과가 나오기 때문에 문서를 읽어야 어디서 실행하는 지 알 수 있다. 도커허브로 가보자.
 

🔹nginx 문서 읽어보기

notion image
도커 허브에서 nginx검색
도커 허브에서 nginx검색
notion image
문서를 확인해 본다.
문서를 확인해 본다.
notion image
문서에서 이걸 확인하자마자, 아~ 오리지널 경로에서
/usr/share/nginx/html 폴더로 복사가 되는데 이게 웹서버 폴더구나 라고 파악할 수 있다.
문서에서 이걸 확인하자마자, 아~ 오리지널 경로에서 /usr/share/nginx/html 폴더로 복사가 되는데 이게 웹서버 폴더구나 라고 파악할 수 있다.
notion image
웹서버 폴더로 들어가보자. 
index.html이 있음을 확인이 가능
혹시 내부를 확인하고 싶으면 cat index.html 로 확인이 가능
웹서버 폴더로 들어가보자. index.html이 있음을 확인이 가능 혹시 내부를 확인하고 싶으면 cat index.html 로 확인이 가능
notion image
docker run -p 8080:80 -dit 이미지명 실행도구
포트포워딩 설정해서 다시한 번 실행해보자.
docker run -p 8080:80 -dit 이미지명 실행도구 포트포워딩 설정해서 다시한 번 실행해보자.
notion image
실행이 안되는데, 서버를 실행한 것이 아니라. command가 bash로 되어있어서 직접 실행이 되지 않았다는 것을 알 수 있다.
실행이 안되는데, 서버를 실행한 것이 아니라. command가 bash로 되어있어서 직접 실행이 되지 않았다는 것을 알 수 있다.
 
notion image
문서에 실행 커맨드를 확인하고
문서에 실행 커맨드를 확인하고
notion image
우리 도커파일을 수정하자. 
근데 또 실행 안됨, 직접 설치한게 아니라 경로를 설정해줘야 된다. 

WORKDIR 설정이 필요함.
우리 도커파일을 수정하자. 근데 또 실행 안됨, 직접 설치한게 아니라 경로를 설정해줘야 된다. WORKDIR 설정이 필요함.
 

🔹 코드 수정후 재행

notion image
이렇게 설정해서 다시 실행해보자.
이렇게 설정해서 다시 실행해보자.
 

🔹 프로세스 순서 다기

JavaScript
1. docker build -t nginx . 
2. docker run -dit -p 9000:80 nginx
3. docker ps  // 이걸로 ps가 돌아가고 있는지 확인
4. 웹으로 localhost:9000 접속
notion image
확인 완료
확인 완료
 

🔹 더 나은 방법? entrypoint.sh 파일 사용

notion image
앞으로는 엔트리포인트로 파일을 불러와서 사용하라고 하시는데, 도커파일로 작성할려면 이 명령어들을 전부 RUN에 할당하면 된다.
앞으로는 엔트리포인트로 파일을 불러와서 사용하라고 하시는데, 도커파일로 작성할려면 이 명령어들을 전부 RUN에 할당하면 된다.

도커파일로 작성시 문법

notion image
이게 도커 파일 문법으로 작성된 스크립트
이게 도커 파일 문법으로 작성된 스크립트