Docker 개념 정리 (feat. IP, DNS, PORT)

David's Data Science·2021년 9월 30일
0
post-thumbnail
내용은 얄팍한 코딩사전을 참고했습니다

IP, DNS, PORT

IP(Internet Protocol address)

인터넷에 접속할 때 접속자에 대한 최소한의 정보가 공개되는 인터넷 신분증

DNS(Domein Name System)

웹 브라우저는 웹 서버가 실행중인 컴퓨터의 IP주소가 필요하고, 도메인을 건네 줌으로써 해당 웹 서버의 IP주소를 반환 받는데, 그러한 IP주소 응답을 하는 것이 DNS이다.

PORT

프로그래밍에서의 사전적의미로는 논리적 접속 장소를 말하는데, 네트워크를 통해 클라이언트와 특정 서버를 연결하는 지점을 의미한다. 대개 프로그램 별로 Port 번호를 갖고 있는 편이며, 별도 port 지정이 없을 경우 웹 서버 HTTP는 기본 port 80을 부여한다.

Port를 통한 연결의 원리

  1. 웹 브라우저(클라이언트)에서 웹서버로 요청
  2. DNS로부터 해당 웹 서버의 IP주소를 응답 받는다.
  3. 해당 IP주소와 함께 특정 프로그램의 PORT번호를 넣어 URL에 대한 HTTP 메서드를 통해 웹 서버에 리소스에 대한 요청을 시도한다.
  4. 정상적으로 연결이 되면 HTML페이지를 응답받게 된다.

PORT의 필요성

PORT가 왜 필요한지 궁금할 수 있다. DNS로부터 IP주소만 받게 된다면 위와 같이 서버에서 어떤 프로그램을 위한 연결을 하고싶은건지 알 수가 없다.

위 예시에서 (로컬호스트지만)127.0.0.1이 IP라고 할 때, 두번째 그림과 같이 옆에 :PORT번호를 같이 부여해 줘야 해당 프로그램의 포트번호로 웹 서버가 제대로 연결이 된다.

DOCKER

Docker 사에서 Linux 컨테이너를 자체적으로 개발해 만든 오픈소스 플랫폼이다.
가상화를 통해 windows나 mac 등의 환경에서도 Linux 컨테이너를 사용해 다양한 프로그램을 쓸 수 있도록 도와주는 가상화 환경 도구이다.

굉장히 유용해서 최근 계속해서 많은 기업이 도커를 사용한다고 한다. 단, 가상화로 진행되기 때문에 이로 인한 메모리가 mac, windows 각각 발생한다.

왜 도커, 리눅스를 써야할까?

  • 리눅스는 유닉스 기반으로 만들어진 가장 오래되고, 보안성이 상대적으로 좋아 개발자들이 많이 사용하는 OS이기 때문에 개발과 관리, 유지보수에 필요한 프로그램들이 더 발달되었고 지원이 되기 때문이다.
  • 리눅스는 어디에서든 GIT HUB과 같이 프로그램을 가상으로 받아서 사용가능해 효율을 높일 수 있다.
  • 가상 컴퓨팅(가상 머신)을 사용하면 환경이 나눠진 만큼 격리되어 성능이 떨어지게 되지만, 도커의 경우는 로컬 호스트에 설치한것과 같은 성능을 보인다.

docker의 기본 사용원리

1) 프로그램(image) 불러오기

레지스트리(docker hub로 생각해도된다)에서 pull을 해서 원하는 프로그램(image)을 가져온다.

2) 프로그램(image) 실행하기 > being container

불러온 프로그램(image)을 실행(run)하게 되면 프로그램이 실행중이 상태(Container)가 된다.

3) 작업하기(container)

docker는 컴퓨터가 켜져있는 동안, docker가 켜져있는 동안 프로그램(또는 서버)은 유지가 된다. 중간에 멈추거나 삭제도 가능하다.

4) 프로그램(image) 올리기

진행완료한 프로그램을 저장하는 방식으로 commit을 진행하고 push를 통해 docker hub에 올린다.

profile
데이터 사이언티스트가 되고싶은 David입니다.

0개의 댓글