겉바속촉

[DOCKER] 도커_웹 서버 작동시키기 본문

IT 일기 (상반기)/DOCKER

[DOCKER] 도커_웹 서버 작동시키기

겉바속촉 2020. 12. 30. 14:46
728x90
반응형

 

 

DOCKER에 대해서

 

공부해보도록 하겠습니다

 

!^^!

 

 

 


 

오늘의 목표

 

웹 서버 작동시키기

오픈소스 웹 서버인 nginx 환경 구축을 해줄게요:)

 

 

 

 

 

 

 

docker search nginx 명령으로 검색!!

 

출력된 것 보니 public 하게 사용하도록 올려져있는 것들이 많네요

 

 

 

docker pull nginx 명령으로 nginx 다운로드 받기

 

 

images 또는 image ls 명령으로 확인해보기

 

 

이제 다운받은 이미지들을 컨테이너로 올리려고 합니다

컨테이너 리스트를 확인해보니까 이름이 그냥 자기맘대로 정해집니다

 

 

 

 

이름을 그래서 정해주려고 하는데요:)

 

docker run --name webserver nginx

 

 

아마 다른 세션에서 확인하면 nginx가 webserver라는 이름으로 돌아가고 있을 겁니다:)

포그라운드로 동작하고 있는 상황

 

이제 백그라운드로 돌리고 싶다면

일단

^C 로 중단시키고

 

 

docker ps : 실행중인 컨테이너 보기

 

docker ps -a : 종료된 컨테이너까지 보기

위에서 ^C로 중단시켰기 때문에 Exited인 상태로 뜹니다

 

 

★ 컨테이너 안의 프로세스와 컨테이너의 생명주기는 동일하다는 것!!!! 알고있쥬?? ★

 

 

 

 

이제 백그라운드로 해주려면 아까 명령어에서 -d 옵션 추가해주기

 

docker run --name webserver1 -d nginx

 

 

 

이제 이 nginx가 제대로 동작하는 지 확인해볼게요!!

 

docker insepct webserver1 명령으로 자세하게 살펴봅시다

컨테이너에 대해 부여된 ip를 확인할 수 있으니까요!!

 

 

 

저 ip주소를 curl 명령으로 내려봅시다

웰컴페이지가 보인다면 잘 동작한다는 것

 

 

 

근데 이건 어차피 웹서버니까 윈도우에서 접근하고싶음!!!

그럼 인터넷 창에 ip주소 넣으면 저 창이 뜰까?

 

 

 

 

아뇨!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

nononono!!!! ---> 다른 사설망을 가지고 있기 때문인데요

사설 ip로 올라갔기 때문에 내부 통신만 가능할 뿐 외부통신이 불가한거에요ㅠㅠㅠ

 

 

 

현재 gateway : 172.17.0.1

현재 ip address : 172.17.0.2

 

도커에서 제공하는 gateway기반으로 컨테이너가 올라간 것 -->사설ip

현재 host는 gateway를 품고 있어서 접근이 가능해서 콘솔창으로는 볼 수 있었던 것!!!

 

그 컨테이너 내에 172.17이라는 사설 네트워크 망이 있지만 그것은 결국 윈도우즈랑은 다른 사설망인 것이에요

 

 

 

 

powershell로 한 번 봅시다:)

ipv4주소를 보면 다르다는 것을 알 수 있습니다

결국 centos나 ubuntu host로나 가능하다는 거죠!!

 

 

그래서

centos와 결합되는 포트번호로 포트 포워딩을 해야 접속이 가능하게 될거에요

그 옵션이 바로 -p입니다

 

ip a 명령을 내려 확인한 호스트 주소의 포트 번호와 연결시키면 되는 것이쥬!!

 

 

 

 

docker run --name webserver2 -d -p 80:80 nginx

 

80번으로 포워딩하겠다는 것!!!!

근데 저는 오류가 나네요;;;

 

뒤의 80번은 꼭 그대로 해주셔야합니다 --> nginx가 80으로 서비스하기 때문

앞의 80번은 host 포트입니다 --> host ip와 결합되는 것

 

그래서 앞의 80번은 사용하지 않는 아무 포트번호로

뭐 8080 800 기타 등등 여러가지로 해보세요!!

 

 

그 다음 크롬창에서 ip주소 입력해주기

 

만약 8080같은 수로 했다면

192.168.137.129:8080 이렇게 주시면 됩니다

 

만약 80 번호 주셨다면

기본이기 때문에 그냥 192.168.137.129 이렇게 해주시면 되는거에요

 

 

으악!!!!!!

저는 우분투로 해도 오류가나네요:)

 

docker run --name web -d -p 80:80 nginx 명령 내려서 했더니 안됩니다ㅠㅠ

 

 

성공하면 다음과 같이 웰컴 페이지 뜨셔야합니다

 

 

 

***참고*****************************************************************

만약 프론트엔드 서비스가 아니라 DB와 같은 백에서 연결한다면

다음 명령에서 -p 옵션이 필요할까요??

docker run --name web -p 8080:80 -d --restart=always nginx

nonono

통신할 필요가 없으므로!!!

**************************************************************************

 

 

 

이제 컨테이너 종료시켜도 보고

다시 돌려도 본 후에

history로 확인할게요

 

 

실행 중인 것 보려면 docker ps 내려주시면 되는데요

당연히 web이 돌아가고 있겠죠

 

728x90
반응형