Docker를 사용하는 이유
이식성
특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성 -> 예를 들자면 이사를 편하게 할 수 있다!
Docker를 사용하면 명령어 한 줄로 어떤 컴퓨터든 MySQL을 에러 없이 설치, 실행이 가능하다.
- 설치과정을 거치지 않아도 됨
- 항상 일관되게 프로그램 설치 가능( 버전, 환경설정, 옵션, 운영체제 등)
- 독립적인 환경에서 실행되기 때문에 프로그램간 충돌이 일어나지 않음
💡 IP란?
- 특정 컴퓨터를 가리키는 주소
💡Port란?
- 한 컴푸터 내에 실행되고 있는 특정 프로그램의 주소
💡브라우저의 기본 포트 :80
- 기본적으로 80 포트 번호를 가지고 있기 때문에 주소에 :80을 입력하지 않아도 실행된다!
💡well-known port란?
포트번호는 0 ~ 65,535번 까지 사용할 수 있다. 그중 0 ~ 1023 까지는 규약에 따라 역할이 정해져 있다.
이렇게 규약을 통해 정해져 있는 포트 번호를 잘 알려진 포트( well-known port )라고 한다.
- 22번 포트 : SSH (원격 접속을 위한 포트) - EC2인스턴스 연결 시 사용
- 80번 포트 : HTTP로 통신
- 443번 포트 : HTTPS로 통신
Docker란?
컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴
컨테이너(Container)란?
하나의 컴퓨터 내에 독립적인 컴퓨터 환경을 구성, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념
쉽게 설명하자면?
윈도우 환경을 사용해 보면 하나의 컴퓨터에 여러 사용자로 나눠 사용할 수 있게 구성되어 있다.
각 사용자의 환경에 들어가 보면 독립적으로 구성되어 있어서 필요한 프로그램을 각 사용자 환경에 따로따로 설치해주어야 한다.
하나의 컴퓨터 환경 내에 여러 개의 미니 컴퓨터환경을 구성할 수 있는 형태
미니컴퓨터를 보고 Docker에서는 컨테이너(Container)라고 부른다.
여기서 컨테이너(미니 컴퓨터)를 포함하고 있는 컴퓨터를 호스트(host) 컴퓨터 라고 한다.
컨테이너의 독립성
- 디스크 (저장공간) : 각 컨테이너마다 서로 각자의 저장 공간을 가지고 있다. 일반적으로 A 컨테이너 내부에서 B컨테이너 내부에 있는 파일에 접근할 수 없다!
- 네트워크(IP, Port) : 각 컨테이너마다 고유의 네트워크를 가지고 있다. 컨테이너는 각자의 IP주소를 가지고 있다!
이미지(Image)란?
프로그램이 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있다.
즉, 프로그램을 실행하는데 필요한 모든 것을 포함하고 있다!
이것도 간단하게 설명하자면
닌텐도의 칩과 같은 역할을 하는 것을 이미지(Image)라고 생각하면 된다!
예시로
MySQL 서버를 이미지로 만들었다면, 이 이미지를 Docker로 실행시키는 순간 MySQL 서버가 컨테이너(Container) 환경에서 실행된다. MySQL을 일일이 설치할 필요 없이 MySQL 데이터베이스를 사용할 수 있게 된다.
'DevOps > Docker' 카테고리의 다른 글
[Docker] Docker Compose (0) | 2024.08.08 |
---|---|
[Docker] Dockerfile (0) | 2024.08.08 |
[Docker] Container (0) | 2024.08.06 |
[Docker] image (0) | 2024.08.06 |