Docker 공부하기

ZEDY·2025년 1월 8일
0

docker

목록 보기
2/2

인턴 생활을 하며 도커 task를 맡게 되었다.
docker을 이렇게 혼자 전문적으로 해보는 거는 처음인데, 사실 진짜 해보고 싶어서 내가 하고 싶다고 했다.
퇴근하고 공부 열심히 해서 내일 잘 해봐야지.


도커란?

어떤 서비스를 운영하기 위해서는 프로그램을 돌려야 한다. 나는 파이썬을 사용하고, 필요한 라이브러리를 모두 설치한 환경에서 이 프로그램을 실행하면 잘 돌아간다.
하지만, 다른 사용자가 내 코드를 클론 받아서 단순히 run 명령을 실행해도 프로그램이 돌아가지 않는 경우가 생긴다.

이것은 환경이 다르기 때문이다.

다른 사용자가 사용하는 운영체제, 파이썬 버전, 라이브러리 버전, 환경 변수 설정 등이 나와 다를 수 있기 때문에 동일한 프로그램이라도 실행되지 않는 경우가 생긴다. 이를 해결하기 위해 모든 환경을 통일할 필요가 있다.


도커의 역할

도커(Docker)는 이러한 문제를 해결하기 위한 컨테이너 기반 가상화 기술이다. 도커는 애플리케이션과 그 애플리케이션이 실행되기 위해 필요한 모든 것을 하나로 묶어 "컨테이너"라는 형태로 패키징한다.

이 컨테이너에는 프로그램, 라이브러리, 환경 설정 등이 모두 포함되어 있어, 어떤 환경에서든 동일하게 실행할 수 있다. 이를 통해 "내 로컬에서는 잘 되는데..."와 같은 문제가 사라지게 된다.


도커의 주요 개념

  • 도커파일(Dockerfile): 레시피와 같은 것. 우리 어플리케이션을 구동하기 위해서 꼭 필요한 파일은 무엇이 있는지, 어떤 프레임워크나 라이브러리를 설치해야 하는지, 외부 디펜던시에 대해서도 명시할 수 있다. 그리고 필요한 환경변수 설정이나 구동 스크립트를 포함할 수 있다.
  • 이미지(Image): 프로그램과 해당 프로그램이 실행되기 위해 필요한 설정 및 라이브러리를 담은 정적인 템플릿이다. 즉, 프로그램과 환경을 패키징한 형태라고 할 수 있다. 작성한 도커 파일을 이용해 이미지를 만든다. 어픞ㄹ리케이션을 실행하는데 필요한 코드, 런타임 환경 시스템, 툴 시스템 라이브러리 등 모든 세팅들이 포함되어 있다.
  • 컨테이너(Container): 이미지를 실행한 실행 가능한 인스턴스이다. 컨테이너는 실제 프로그램이 돌아가는 공간이며, 서로 독립적으로 실행되므로 다른 프로그램이나 시스템 환경에 영향을 받지 않는다.

도커로 배포하는 방법

  1. 로컬머신에서 이미지 만들기
  2. Container Registry에 내가 만든 이미지 push
  3. 필요한 서버에서 pull 하고 실행하기 -> 서버에도 도커를 설치해야 한다.
profile
Spring Boot 백엔드 주니어 개발자

0개의 댓글