이전 포스팅들에서는 Docker Hub에 올라온 이미지를 받아서, 실행해 보는 방식으로 Docker를 다뤘어요. Ubuntu, Nginx, MySQL 등 남이 만들어둔 환경 위에서 내 코드를 올려보는 실습을 했죠. 이제부터는 남이 만든 이미지가 아니라, 내가 만든 코드를 위한 나만의 이미지를 만들 차례예요. 이때 필요한 게 바로 Dockerfile입니다.왜 Dockerfile이 필요한가?Dockerfile은 도커 이미지를 만드는 설계도 파일이에요. 어떤 OS에서, 어떤 패키지를 설치하고, 어떤 파일을 복사하고, 어떤 명령어로 실행할지 등을 단계별로 이 한 파일에 모두 정의할 수 있죠. Docker는 이 Dockerfile을 읽고 한 단계씩 따라가면서 이미지를 빌드해 줘요.실제 개발·배포 환경에서는 거의 ..
컨테이너 기술을 익히다 보면 누구나 한 번쯤은 겪는 고민이 있어요"데이터는 컨테이너에 잘 저장됐는데, 컨테이너를 삭제하니 사라졌어요. 왜죠?" 이런 문제는 Docker의 특성상 너무나 자연스러운 현상이에요. 그리고 이 문제를 깔끔하게 해결해 주는 기능이 바로 Volume입니다.왜 Volume이 필요할까?Docker의 컨테이너는 기본적으로 휘발성이에요. 컨테이너 내부에 데이터를 저장해도, 컨테이너가 삭제되면 데이터도 함께 사라져요. 하지만 이런 데이터는 쉽게 날아가면 안 되겠죠?데이터베이스의 사용자 데이터로그 파일사용자가 업로드한 이미지 등 정적 리소스이런 데이터는 컨테이너의 라이프사이클과는 독립적으로 영구 보존 되어야 해요. 이럴 때 필요한 것이 바로 Volume이에요. 도커 볼륨의 세 가지 방식방식설..
🐳 컨테이너란?Docker에서 컨테이너는 이미지를 실행한 결과물이에요.이미지(Image) = 실행 전의 정적인 템플릿컨테이너(Container) = 실행 중인 동적인 인스턴스 컨테이너는 다음과 같은 특징을 가져요:이식성: 동일한 환경을 어디서나 재현 가능경량성: 호스트 OS의 커널을 공유하므로 VM보다 경량빠른 실행: 수 초 내로 부팅 및 종료 가능도커 컨테이너는 “애플리케이션 + 실행환경”을 하나로 묶어, 기술적으로는 리눅스 커널 위에서 작동하는 프로세스지만, 외부와 격리된 파일 시스템, 네트워크, 환경변수 등을 갖고 있어 독립된 애플리케이션처럼 작동해요. 🐳 컨테이너를 실행하는 법: docker run가장 많이 사용하는 명령어는 바로 docker run이에요.docker run [OPTIONS] ..
Docker Image란 무엇인가요?Docker에서 이미지(Image)란 컨테이너를 만들기 위한 실행 환경을 패키징 한 파일이에요.도커 이미지(docker image) = 실행 환경 + 애플리케이션 + 설정이 담긴 설계도이 이미지를 기반으로 만들어지는 것이 컨테이너예요.예를 들어 nginx 웹 서버를 실행하고 싶다면? nginx 이미지만 있으면 바로 컨테이너로 실행할 수 있어요. 설치 과정이 필요 없습니다. ☁️ Docker Hub란?Docker Hub는 Docker 공식 이미지 저장소로, 전 세계 개발자들이 이미지를 공유하고 다운 로드할 수 있는 공개 클라우드 레지스트리입니다.주소: https://hub.docker.com/수많은 공식 이미지 및 커뮤니티 이미지가 올라와 있어요.누구나 계정을 만들어 ..
'컨테이너 기술이 뭔데?' [Docker] 컨테이너 기술이 뭔데? 가볍고 빠른 시스템 격리 기술컨테이너 기술이란?컨테이너 기술은 애플리케이션과 그 실행 환경을 함께 포장해서 배포할 수 있도록 해주는 기술이에요. 쉽게 말하면, "어떤 컴퓨터든 환경이든, 같은 방식으로 내 앱이 잘 돌yeo-computerclass.tistory.com🐳 Docker는 무엇인가요?Docker는 애플리케이션을 실행하기 위한 모든 요소를 패키징하고, 이를 어떤 환경에서도 동일하게 실행할 수 있도록 해주는 컨테니어 플랫폼이에요. 조금 더 자세히 말하면, Docker는 컨테이너를 빌드하고, 실행하고, 관리할 수 있는 일련의 도구 모음이에요. 단순히 실행 도구만 제공하는 것이 아니라, 이미지 저장소, API 서버, 네트워크 설정, ..
컨테이너 기술이란?컨테이너 기술은 애플리케이션과 그 실행 환경을 함께 포장해서 배포할 수 있도록 해주는 기술이에요. 쉽게 말하면, "어떤 컴퓨터든 환경이든, 같은 방식으로 내 앱이 잘 돌아가게 만들어주는 방법"이죠. 컨테이너는 코드 + 실행에 필요한 라이브러리, 설정 등 모든 걸 포함해서 패키징되기 때문에, 환경 차이로 인한 오류를 줄여줘요. 자신의 컴퓨터에서 돌아갔지만 친구의 컴퓨터에선 돌아가지 않는 경우나 개발 환경에서는 잘 돌아가는데 운영 서버에서는 안 되는 문제, 겪어보신 적 있죠? 컨테이너는 그런 문제를 거의 없애줍니다. 왜 컨테이너가 필요할까요?📌 애플리케이션은 점점 더 복잡해지고 있다.오늘날의 애플리케이션은 단일 서버에만 의존하지 않습니다. MSA, 클라우드, CI/CD 등 다양한 기술 환..