#wannabeeeeeee the best DataScientist

Docker 기본 개념 본문

Data scientist/Docker

Docker 기본 개념

맨사설 2025. 5. 4. 22:28
728x90

✅ 현업에서 Docker를 많이 쓰는 이유

  • 이식성: Docker는 프로그램을 다른 환경으로 쉽게 옮겨 설치하고 실행할 수 있어, 다양한 시스템에서 동일하게 작동하도록 도와줍니다.

✅ Docker의 장점

  • 설치 과정을 간소화: 매번 복잡한 설치 과정을 반복하지 않아도 됩니다.
  • 일관된 환경 제공: 버전, 환경 설정, 옵션, 운영 체제 등 모든 요소가 일관되게 유지됩니다.
  • 독립적인 실행 환경: 각 프로그램이 독립적인 환경에서 실행되어, 서로 간의 충돌을 방지할 수 있습니다.

💡보충 개념

  • IP 주소: 네트워크 상에서 특정 컴퓨터를 식별하는 주소입니다.
  • Port 번호: 한 컴퓨터 내에서 실행 중인 특정 프로그램을 식별하는 주소입니다. 서버와 통신하려면 IP 주소와 함께 해당 프로그램의 포트 번호도 알아야 합니다.

  브라우저 주소창에 포트 번호를 입력하지 않는 이유

주소창에 도메인 주소만 입력하면, 브라우저(크롬, 익스플로러 등)는 기본적으로 80번 포트를 사용하여 통신을 시도합니다. 그래서 포트 번호를 따로 입력하지 않아도, 자동으로 80번 포트로 연결됩니다.

  잘 알려진 포트(Well-Known Port)란?

  • 포트 번호는 0부터 65,535까지 사용할 수 있습니다. 그중 0부터 1023번까지의 포트 번호는 이미 특정 서비스에 할당되어 있습니다. 이를 **잘 알려진 포트(Well-Known Port)**라고 부릅니다.

  자주 사용되는 포트 번호

  • 22번 (SSH, Secure Shell Protocol): 원격 접속을 위한 포트 번호입니다. 예를 들어, EC2 인스턴스에 연결할 때 사용됩니다.
  • 80번 (HTTP): HTTP 통신을 위해 사용됩니다.
  • 443번 (HTTPS): HTTPS 통신을 위해 사용됩니다.

위 포트 번호는 규약에 따라 정해진 것이지만, 꼭 이 번호들을 지킬 필요는 없습니다. 즉, 규약과 다른 포트 번호를 사용해도 됩니다.


300x250

✅ Docker란?

Docker는 컨테이너를 사용하여 각 프로그램을 분리된 환경에서 실행하고 관리할 수 있는 도구입니다.

✅ 컨테이너(Container)란?

컨테이너는 하나의 컴퓨터 환경 내에서 독립적인 "미니 컴퓨터" 환경을 구성하여, 각 환경에 프로그램을 별도로 설치하고 실행할 수 있게 만드는 개념입니다.

 

이를 통해 하나의 컴퓨터에서 여러 개의 독립적인 환경을 만들 수 있습니다. Docker에서는 이러한 독립적인 환경을 **컨테이너(Container)**라고 부릅니다. 컨테이너가 실행되는 컴퓨터는 호스트(Host) 컴퓨터라고 불리며, 이 호스트 컴퓨터는 여러 개의 컨테이너를 포함할 수 있습니다.

✅ 컨테이너(Container)의 독립성

  • 디스크(저장 공간): 각 컨테이너는 자체적인 저장 공간을 가집니다. 즉, A 컨테이너는 B 컨테이너의 파일에 접근할 수 없으며, 서로 독립적인 환경을 유지합니다.
  • 네트워크(IP, Port): 각 컨테이너는 고유한 네트워크 설정을 가집니다. 즉, 각 컨테이너는 독립적인 IP 주소를 가지며, 서로 다른 네트워크 환경에서 실행됩니다.

✅ 이미지(Image)란?

이미지는 마치 닌텐도의 게임 칩처럼, 다양한 프로그램을 실행할 수 있도록 필요한 설치 과정, 설정, 버전 정보 등을 포함하는 "템플릿"입니다. 즉, Docker에서의 이미지는 프로그램 실행에 필요한 모든 요소를 포함하고 있으며, 이를 바탕으로 컨테이너를 실행할 수 있습니다.

✅ Docker를 어떻게 조작할까?

Docker는 주로 터미널에서 명령어(CLI: Command Line Interface)를 통해 조작합니다.
이미지 다운로드, 컨테이너 실행, 상태 확인 등 대부분의 작업을 CLI로 수행하게 됩니다.

✅ Nginx란?

Nginx(엔진엑스)는 다양한 기능을 제공하는 서버 소프트웨어입니다.
그중 가장 널리 알려진 기능은 웹 서버로서의 역할입니다.

  • 웹 서버란?
    HTML과 같은 정적인 웹 페이지를 브라우저에 전달하고, 화면에 랜더링되도록 도와주는 역할을 합니다.

Nginx는 이 외에도 로드 밸런서, 리버스 프록시, 캐시 서버 등 다양한 용도로 활용됩니다.

 


✅ Docker로 직접 사용해보기

1. Nginx 이미지 다운로드

 

2. 다운로드 된 이미지 확인

 

3. 이미지를 컨테이너에 올려 Nginx 서버 실행시키기

 

4. Nginx 서버가 잘 실행되는 지 확인하기

 

5. 실행되고 있는 모든 컨테이너 상태 확인하기

 

6. 특정 컨테이너 정지

 

728x90

'Data scientist > Docker' 카테고리의 다른 글

Docker Compose  (0) 2025.05.11
Docker File  (0) 2025.05.07
Docker 실습(2)  (1) 2025.05.06
Docker 실습(1)  (0) 2025.05.04