도커

장원재·2025년 1월 28일
0

도커

목록 보기
2/3

개요: 도커를 왜 배워야 할까?

직접 깡으로 배포하는 경험이 있는 사람에게 도커의 편안함이 많이 와닿을 것이다. 나는 SSH 에서 node db 를 직접 설치하고, 각각의 환경변수 셋팅하는 과정에서 많은 에러가 발생했다. 또한 해결하는 과정도 역시 쉽지 않았다. 애초에 에러가 많이 발생하는 이유는 환경이 독립되지 않아서 충돌이 발생했기 때문이다. 하지만 도커를 사용하면 이러한 걱정을 할 필요가 없다. 컨테이너를 제공함으로써 독립된 환경을 제공하고, 설치 또한 명령어 한줄로 모든 게 다 된다.

도커

도커를 이해하기 위해서는 컨테이너와 이미지라는 개념을 알고 있어야한다. 먼저 이 두용어에 대해서 알아보자. 컨테이너란 호스트 컴퓨터 내부의 독립된 환경의 미니 컴퓨터이다.

1. 컨테이너

  • 하나의 호스트 컴퓨터에 여러개의 컨테이너 환경을 구성할 수 있다.

  • 컨테이너 환경은 독립적이기 때문에, 각각 독자적인 저장 공간과 네트워크(ip. port) 를 가지고 있다.

2. 이미지

  • 이미지는 닌텐도 칩에 비유할 수 있겠다. 닌텐도 칩은 각각 게임을 탑재하고 있다. 예시로 마리오 칩이 있다면 그것을 닌텐도에 꼽기만 하면 닌텐도에서 바로 마리오 게임을 즐길 수 있게 된다. 도커에서 이미지는 이와 매우 유사하다. 예시로 Mysql 이라는 이미지를 컨테이너 (미니컴퓨터) 에 꼽기만 하면 해당 컨테이너에서 Mysql 을 사용할 수 있다.

  • 즉, 도커는 이미지를 통해서 뛰어난 이식성을 갖추고 있다.

따라서 도커에서 컨테이너를 띄울 때 보통 이미지와 함께 컨테이너를 띄운다. 이미지를 사용하지 않으면 사실상 도커를 사용하는 의미가 없기 때문이다.


도커의 흐름

도커의 전반적인 흐름은 다음과 같다.

  1. 이미지를 다운 받는다.
  2. 다운로드 받은 이미지를 컨테이너에 올린다.
    2-1. 만약에 서버를 컨테이너에 올린 경우 포트 매핑을 신경 써준다.

간단하게 nginx 서버를 도커를 이용해서 띄어보자.

그러기 위해서는 우선 nginx 이미지 부터 dockerhub 로 부터 다운로드 받을 수 있도록 하자.

docker pull nginx

다음으로는 image 가 잘 다운로드 받아졌는지 확인하기 위해서 아래 명령어를 수행하자.

docker image ls

마지막 과정으로 nginx 이미지를 컨테이너에 올려 띄우면 끝이다.

docker run --name my-server -d -p 80:80 nginx
  • run 은 컨테이너를 띄우는 명령어인데 컨테이너의 이름을 my-server 로 하였다.
  • -d 는 백그라운드 환경에서 컨테이너를 띄우는 뜻이고, -p 80:80 는 호스트 포트 80번과 컨테이너 포트 80번을 이어준 것이다. 아래의 그림을 참고하도록 하자.
profile
데이터 분석에 관심있는 백앤드 개발자 지망생입니다

0개의 댓글

관련 채용 정보