Recent Posts
Recent Comments
250x250
관리 메뉴

JIE0025

[Docker] 도커의 기본 개념과 전체 흐름 이해하기 본문

Infra/Cloud, Docker, Kubernetes

[Docker] 도커의 기본 개념과 전체 흐름 이해하기

sdoaolo 2025. 10. 28. 14:33

 

 

비전공자도 이해할 수 있는 Docker 입문 /실전 

 

강의를 듣고 정리한 내용입니다  :)

 

비전공자도 이해할 수 있는 Docker 입문/실전| JSCODE 박재성 - 인프런 강의

현재 평점 4.9점 수강생 13,994명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 Docker 입문/실전 강의를 만들어봤습니다! Docker 기본 개념, Spring Boot를

www.inflearn.com

 

 

 

 

 


 

 

 

도커는 왜 배워야할까?

 

장점 ==  이식성 때문이다. 

특정 프로그램을 다른곳으로 쉽게 옮겨서 설치 및 실행할 수 있기 때문이다. 

 

 

만약 친구가 컴퓨터에 MYSQL을 깔았다. 

근데 내 컴퓨터에서 똑같이 한것 같은데  이상하게 에러가 떳다.  

 

그 이유는 다양한데.... 

버전을 다른걸 설치했거나, 운영체제가 다르거나, 다른 프로그램과 보안프로그램.. 충돌이 일어나거나..

 

 

도커를 이용하면 프로그램을 명령어 한줄로 컴퓨터에 에러없이 설치하고 실행할 수 있게 된다. 

 

귀찮은 설치 과정을 거치지 않아도 되고   항상 같은 설정과 버전으로 설치할 수 있다. 

 

각 프로그램은 독립적인 환경에서 실행되기 때문에 프로그램간 서로 충돌이 일어나지 않는다!!

 

 

 


 

IP PORT의 기본 개념 

특정 컴퓨터를 가리키는 주소를 IP라고 한다. 

naver.com 이라는 서비스도 IP주소가 있다. 

 

 

port : 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소

우리가 도메인에 접속할때 IP뒤에 적힌 번호가  포트번호이다. 

:3000  

 

 

한 컴퓨터에서도 여러가지 프로그램이 실행되고 있을텐데

이 프로그램을 구분하는것이 포트이다. 

 

 

외부에서  SpringBoot 서버에 통신을 하고 싶은데 

그걸 IP주소만으로는 접근할수없다 어떤 프로그램이랑 통신하기 위해  해당 프로그램의 포트번호도 필요하게 된다. 

 

 

그렇다면 브라우저창에 우리가 포트번호를 왜 입력하지 않을까? 

주소창에 도메인주소(naver.com)를 입력해 엔터 누르면 

브라우저는 기본적으로 80 포트로 통신하도록 보내게 되어있다.   (Defualt) 

>>  만약 80이 아니라 다른 포트로 통신하고 싶다면 그때 명시하면 된다. 

 

 

 

잘알려진 포트 well known port

0~65535 까지 사용할수 있는 포트번호중에

잘 알려진 포트라는 개념이 있다.

 

바로  0~1023은 주요 통신을 위한 규약에 따라 정해놓은 통신 포트번호를 WellKnown Port라고 한다. 

 

22 : SSH  원격 접속을 위한 포트번호  * Secure Shell

* EC2등 특정 서버에 접속할때 사용하는 포트

 

80 : http

443 : https  

 

 

 

특정 서버와 http 통신을 할 때 80을 안쓰고 3000/ 8080 이런걸 써도 상관은 없다. 

 

 

 

이제 기본적인 내용을 알았으니 도커에 대해 알아보자. 

 


 

도커란 무엇일까? 

 

컨테이너를 사용해   각각의 프로그램을 분리된 환경에서 실행/ 관리할 수 있는 툴이다. 

 

 

컨테이너(Container)는 무엇일까? 

 

윈도우를 사용하다보면  하나의 컴퓨터에 여러 사용자로 나눠서 사용할 수 있게끔 구성되어있다.


A라는 사용자로 접속해서 카카오톡을 깔면  B라는 사용자로 접속하면 카카오톡이 없어 새로 깔아야한다. 

 

컨테이너도 이와 유사하다.

하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성하여     각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념이다. 

 

미니컴퓨터 = 컨테이너 라고 생각하면 편하게 이해할 수 있을것이다.   

 

 

독립적인 환경을 컨테이너 라고 하고 ,

 

니 컴퓨터를 포함하는   전체 컴퓨터 = 호스트 컴퓨터라고 한다.

 

 

 

컨테이너의 독립성

독립성을 갖고있다.  다른 환경과 분리되어 서로 영향을 끼치지 않는다. 

어떤것을 독립적으로 분리헀는가?

저장공강 - 서로 각자의 저장공간이 있다.   A 컨테이너 내부에서 B컨테이너 내부에 있는 파일에 접근할 수 없다. 

 

네트워크 IP / PORT 도 각자 갖고 있다!

 

 


이미지(image) 는 무엇일까? 

 

닌텐도 같은 게임기 보면    여러가지 칩을 꽂으면 여러가지 게임을 즐길 수 있다. 

 

도커에서 닌텐도의 칩과 같은 역할을 하는게   이미지이다. 

 

 

Node JS 기반의 Express js 서버 프로젝트를 이미지로 만들었다고 가정하자

 

도커로 이미지를 실행시키면     컨테이너 환경에서 실행된다 > 설치과정 없이 손쉽게 실행이 된다.

mysql 서버를 이미지로 만들었는데 도커에서 이미지를 실행하면   컨테이너 환경에서  실행된다  > mysql 설치할 필요없이 바로 사용할 수 있다. 

 

 

즉 이미지에는 프로그램 실행하는데 필요한 설치과정/설정/버전정보등을 포함하여   

프로그램 실행에 필요한 모든것이 포함 되어있다. 

 

 

 


 

✅ 도커 설치 

 

도커 설치 방법은 다른 블로그 글을 참고했다. 

 

https://happylie.tistory.com/78

 

[Docker] 맥 OS에 도커 설치하기(Install Docker on MacOS)

맥 OS에 도커 설치하기이번에 MacBook(맥북)을 새로 설치하는 과정에서 Docker(도커)를 다시 설치하게 되어 설치하는 방법에 대해서 알아보도록 하자.우선 Docker(도커)를 설치하기 위해 공식 홈페이

happylie.tistory.com

 

⏺ 도커 버전 확인

 

 


 

 

이번에는 도커의 전체흐름을 느껴보자!

 

 

✅  Nginx 설치 및 실행 

 

도커를 활용해서 설치및 실행을 해보자. 

 

Nginx는 웹서버 /로드밸런싱/리버스프록시 가 가능한 서버이다 

 

 

⏺ 이미지 다운로드 

docker pull nginx

 

 

⏺ 도커 이미지 다운되었는지 확인

docker image ls

 

 

 

⏺ 이미지 실행 

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

 

 

 

⏺ 실행되었는지 확인

http://localhost:80

 

 

⏺ 프로세스가 정상적으로 떠있는지 확인

 

 

  도커 stop

 

 

 

 

 


 

 

references 
https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-docker-%EC%9E%85%EB%AC%B8-%EC%8B%A4%EC%A0%84?srsltid=AfmBOoqaFJtNcKGl1X_YQIoiDgxIRj-WRrKGiV8CewKafYlfdqxNErOE

 

728x90