전체 글 103

[Docker#14] Docker Compose란?

복잡한 애플리케이션을 개발하거나 운영하다 보면, 하나의 컨테이너만으로는 충분하지 않을 때가 많습니다. 예를 들어, 웹 서버와 데이터베이스 서버를 함께 운영하거나, 여러 개의 마이크로서비스를 동시에 실행해야 할 때가 대표적인 사례입니다. 이때 유용하게 활용되는 도구가 바로 Docker Compose입니다. Docker Compose란?Docker Compose는 여러 개의 Docker 컨테이너를 하나의 서비스 묶음으로 정의하고 관리할 수 있게 도와주는 도구입니다. 즉, 복잡한 컨테이너 환경을 하나의 compose.yml 파일로 정의해두면, 한 줄 명령어로 전체 서비스를 실행하거나 중지할 수 있습니다. 왜 사용할까?1. 여러 개의 컨테이너를 효율적으로 관리할 수 있다.웹 서버, 데이터베이스, 캐시 서버 ..

MLOps/Docker 2025.05.12

[Docker#13] Dockerfile WORKDIR

Docker를 사용할 때, 아무 디렉터리에나 파일을 복사하거나 실행하면 컨테이너 내부가 금방 지저분해집니다.이 문제를 해결해주는 중요한 명령어가 바로 WORKDIR입니다. 이번 글에서는 WORKDIR의 의미, 사용법을 알아보도록 하겠습니다. WORKDIR이란?WORKDIR은 Dockerfile에서 작업 디렉터리를 설정하는 명령어입니다.설정된 디렉터리 이후에 등장하는 RUN, COPY, CMD, ENTRYPOINT 등 모든 명령은 이 디렉터리를 기준으로 동작합니다.비유하자면, 미니 컴퓨터의 "작업 폴더"를 미리 지정해두는 것과 같습니다. 왜 써야 할까? 파일이 깔끔하게 정리됩니다.컨테이너 내부가 혼란스럽지 않습니다.대규모 프로젝트에서도 관리가 쉬워집니다.안 쓰면 컨테이너 루트(/)에 파일이 섞여버립니..

MLOps/Docker 2025.05.12

[Docker#12] Dockerfile RUN

Dockerfile을 구성하다 보면, 이미지 생성 단계에서 미리 필요한 소프트웨어나 패키지를 설치해야 할 경우가 많습니다.이럴 때 사용하는 명령어가 바로 RUN입니다. 이번 글에서는 RUN 명령어의 역할과 사용법을 알아보겠습니다. RUN이란?RUN은 이미지를 생성(build)하는 과정 중에 명령어를 실행할 때 사용하는 Dockerfile 명령어입니다.쉽게 말해, "이 이미지를 만들 때 미리 ~~를 설치해 줘"라고 지시할 수 있는 명령어입니다. # 문법RUN [명령어]# 예시RUN pip install -r requirements.txt RUN vs ENTRYPOINT둘 다 명령어를 실행하지만, 실행 시점이 완전히 다릅니다. 구분 RUN ENTRYPOINT 실행 시점이미지 빌드 중컨테이너 실행 시용..

MLOps/Docker 2025.05.12

[Docker#11] Dockerfile ENTRYPOINT

Docker는 애플리케이션을 컨테이너 단위로 분리하고 실행할 수 있게 해주는 도구입니다.이때, 컨테이너가 실행되자마자 자동으로 특정 명령을 수행하도록 설정할 수 있는데요, 이 기능을 담당하는 Dockerfile 명령어가 바로 ENTRYPOINT입니다. ENTRYPOINT란?ENTRYPOINT는 Dockerfile에서 정의하는 명령어로, 컨테이너가 실행될 때 자동으로 실행되는 명령을 설정할 수 있습니다.쉽게 말해, 미니 컴퓨터의 전원을 켜자마자 실행하고 싶은 프로그램을 등록하는 것과 같습니다. ENTRYPOINT [ "실행할_명령어", "인자1", "인자2", ... ] 실습컨테이너가 실행되면 main.py 파이썬 스크립트를 자동으로 실행하게 만들어보겠습니다. # 프로젝트 구성.├── Dockerfi..

MLOps/Docker 2025.05.12

[Docker#10] Dockerfile COPY

Docker를 사용할 때, 호스트 컴퓨터의 파일이나 디렉터리를 컨테이너로 복사하는 작업은 매우 자주 사용됩니다.이때 사용하는 것이 바로 COPY 명령어입니다. 이번 글에서는 COPY의 기본 문법을 알아보겠습니다. COPY란?COPY는 호스트 컴퓨터(내 로컬)에 있는 파일이나 폴더를 컨테이너 이미지 안으로 복사하는 명령어입니다.보통 코드, 설정 파일, 라이브러리 등을 Docker 이미지에 포함시킬 때 사용합니다. COPY [복사할_파일_또는_폴더_경로] [컨테이너_내_경로] 예를 들어, app.txt 파일을 컨테이너 루트에 복사하고 싶다면 다음과 같이 작성합니다.COPY app.txt /app.txt 단일 파일 복사FROM python:3.11-slimCOPY app.txt /app.txtENTRYPO..

MLOps/Docker 2025.05.12

[Docker#9] Dockerfile이란?

오늘은 도커의 핵심 구성 요소 중 하나인 Dockerfile과 이를 활용해 나만의 이미지 만들기, 디버깅 방법까지 정리해보겠습니다. Dockerfile이란?도커는 이미 만들어진 이미지들을 Docker Hub에서 받아서 사용할 수 있습니다. 예를 들어, python, nginx, mysql 같은 이미지들을 다운받아 바로 컨테이너로 실행할 수 있죠.하지만 때로는 내가 만든 코드나 애플리케이션을 직접 이미지로 만들어 배포하고 싶을 때도 있습니다.이때 사용하는 것이 바로 Dockerfile입니다. 즉, 나만의 Docker 이미지를 만들기 위한 설정 파일이라고 생각하시면 됩니다. 예를 들어, 직접 만든 Spring Boot 프로젝트를 컨테이너에서 실행하고 싶다면, 이 프로젝트를 기반으로 한 Dockerfile을..

MLOps/Docker 2025.05.12

[Docker#8] 볼륨(Volume)이란?

Docker를 활용하면 다양한 서비스를 손쉽게 컨테이너로 띄울 수 있습니다. 하지만, 그만큼 컨테이너가 갖는 단점도 분명 존재하죠. 특히 데이터의 영속성 문제는 처음 도커를 사용하는 입장에서 꼭 짚고 넘어가야 할 중요한 포인트입니다. 이번 글에서는 Docker Volume(도커 볼륨) 이 무엇인지, 왜 필요한지 소개하도록 하겠습니다. 기존 방식의 한계Docker는 새로운 코드나 설정 변경이 있을 때마다 기존 컨테이너를 삭제하고 새로 생성하는 방식으로 업데이트를 진행합니다. 이 방식은 깔끔하고 효율적이지만, 한 가지 큰 단점이 있습니다:컨테이너가 삭제되면, 그 안의 데이터도 함께 삭제된다. 예를 들어, MySQL 컨테이너를 실행해 데이터를 저장했더라도, 컨테이너를 삭제하면 해당 데이터베이스도 통째로 사라..

MLOps/Docker 2025.05.08

[Docker#7] 컨테이너(Container) 내부 접속

Docker의 핵심은 컨테이너(Container) 입니다.컨테이너는 한 마디로 호스트 컴퓨터 안에 존재하는 작은 컴퓨터라고 할 수 있습니다. 각각의 컨테이너는 자신만의 운영체제 환경(OS), 저장 공간과 프로그램 실행 공간을 별도로 가지고 있습니다. 즉, 물리적으로는 하나의 컴퓨터지만, 논리적으로는 여러 대의 컴퓨터가 돌아가는 것처럼 사용할 수 있습니다. 따라서, Docker를 사용하다 보면, 실행 중인 컨테이너 안으로 직접 들어가서 파일을 조회하거나, 명령어를 실행해야 할 때가 있습니다.이럴 때 사용하는 명령어가 바로 docker exec -it입니다. 이번 글에서는 컨테이너 내부에 접속하는 방법과, 그 과정에서 알아야 할 개념들을 함께 정리해보겠습니다. 실행 중인 컨테이너 내부에 접속하기컨테이너 내..

MLOps/Docker 2025.04.29

[Docker#6] 컨테이너(Container) 로그 조회

Docker 컨테이너를 운영하다 보면, 컨테이너가 잘 실행되고 있는지, 에러가 발생한 건 아닌지를 반드시 확인해야 합니다.이때 필수적으로 확인해야 하는 것이 바로 로그(log) 입니다. 이번 글에서는 Docker 컨테이너의 로그를 조회하는 방법을 정리해보겠습니다. 컨테이너 로그 조회하기Docker는 실행 중인 컨테이너의 출력(표준 출력 및 표준 에러)을 자동으로 저장하고, 이를 docker logs 명령어를 통해 조회할 수 있게 해줍니다. 특정 컨테이너의 모든 로그 조회가장 기본적인 로그 조회 방법입니다.# docker logs [컨테이너 ID 또는 컨테이너명]$ docker run -d nginx$ docker logs [Nginx 컨테이너 ID] 컨테이너가 실행되면서 출력한 모든 로그를 확인할 수 ..

MLOps/Docker 2025.04.29

[Docker#5] 컨테이너(Container) 조회 / 중지 / 삭제

이번 글에서는 컨테이너를 조회하고, 중지시키고, 삭제하는 방법까지 정리해보겠습니다. 컨테이너 조회하기실행 중인 컨테이너 조회현재 실행되고 있는 컨테이너만 확인하고 싶을 때는 다음 명령어를 사용합니다:$ docker ps※ ps는 process status의 약자로, 실행 중인 프로세스(컨테이너)를 보여줍니다. 모든 컨테이너 조회 (중지된 컨테이너 포함)중지된 컨테이너까지 모두 확인하려면 -a 옵션을 추가합니다:$ docker ps -a 컨테이너 중지하기컨테이너를 중지하려면 stop 또는 kill 명령어를 사용할 수 있습니다.$ docker stop [컨테이너 이름 또는 ID]$ docker kill [컨테이너 이름 또는 ID]stop은 정상적인 종료입니다.집에 있는 컴퓨터를 시스템 종료 버튼으로 끄..

MLOps/Docker 2025.04.29