공부/Docker

Docker 시작하기

Stair 2026. 1. 19. 17:05
반응형

도커를 사용하는 이유

이식성 : 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성

 

도커의 핵심은 이식성에 있다.

도커를 사용하면 OS, 버전 등의 구애를 받지 않고, 명령어 한줄이면 원하는 프로그램을 에러 없이 설치하고 실행할 수 있게 된다.

 

 

도커를 시작하기에 앞서 IP와 Port의 개념을 알아두면 좋다.

IP와 Port의 개념

IP : 특정 컴퓨터를 가리키는 주소

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

 

IP는 cmd창에서 ipconfig를 쳐보면 자동으로 할당되어진 IP를 확인할 수 있다. 그 IP가 컴퓨터의 고유 주소인 것이다.

 

Port는 프로그램에 따라 사용하고 있는 번호가 다르다.

그런데 브라우저 창에는 왜 80 또는 8080처럼 포트번호를 입력하지 않는 것일까?

주소창에 도메인 주소를 입력하면 꼭 포트번호를 입력해야만 할 것 같다. 하지만 브라우저는 기본적으로 80번 포트로 통신을 보내도록 설정되어 있다.

 

만약 다른 번호로 보내게 되면 통신이 되지 않는 것을 볼 수 있다.

 

 

 

Well-known port

포트에는 잘 알려진 포트(Well-known port)라는 개념이 있다.

 

포트는 0~65,535번까지 사용할 수 있는데 0~1023번까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있다.

이렇게 규약을 통해 역할이 정해져 있는 포트 번호를 보고 Well-known port라고 부른다

 

- 22번(SSH, Secure Shell Protocol) : 원격 접속을 위한 포트 번호

    - EC2 인스턴스에 연결할 때 22번 포트를 사용한다.         ec2 : AWS에서 제공하는 가상 서버 서비스이다.

- 80번(HTTP) : HTTP로 통신을 할 때 사용

- 443번(HTTPS) : HTTPS로 통신을 할 때 사용

 

 

 

Docker란? / 컨테이너(Container)란? / 이미지(Image)란?

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

 

 

Container : 하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 여러개 구성하여 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념이다. 하나의 컴퓨터 환경 내에서 여러개의 미니 컴퓨터 환경을 구성할 수 있고, Docker에서는 이 미니 컴퓨터를 컨테이너라고 부른다.

** '컨테이너'와 '컨테이너를 포함하고 있는 컴퓨터'를 구분하기 위해 컨테이너를 포함하고 있는 컴퓨터를 '호스트(host) 컴퓨터'라고 부른다.

 

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

위의 설명에서 컨테이너는 '독립적인 컴퓨터 환경'이라고 얘기했다. 구체적으로 어떤 것들이 독립적으로 관리되는 지 기억해두자.

- 디스크(저장공간) : 각 컨테이너마다 서로 각자의 저장 공간을 가지고 있다. 일반적으로 A 컨테이너 내부에서 B 컨테이너 내부에 있는 파일에 접근할 수 없다.

- 네트워크(IP, Port) : 각 컨테이너마다 고유의 네트워크를 가지고 있다. 컨테이너는 각자의 IP 주소를 가지고 있다.

 

 

Image : 프로그램을 실행하는데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있다. 즉, 프로그램을 실행하는 데 필요한 보든 것을 포함한다.

 

예를 들어 Node.js 기반의 Express.js 서버 프로젝트를 이미지로 만들었다고 가정해보자. 이 이미지를 Docker로 실행시키면 Express.js 서버 프로젝트가 컨테이너(Container)환경에서 복잡한 설치 과정을 거칠 필요 없이 손쉽게 실행된다.

 

닌텐도와 같은 게임기를 보면 여러가지 칩을 꽂아서 다양한 게임을 즐길 수 있게 되어있다.

Docker에서는 닌텐도 칩과 같은 역할을 하는 개념이 이미지(Image)이다.

반응형

'공부 > Docker' 카테고리의 다른 글

Docker Image 관련 CLI  (0) 2026.01.23
도커 흐름 파악하기  (0) 2026.01.22
Docker 설치하기  (0) 2026.01.20