Intro공식 문서 < 여기 여러 컨테이너를 결합하여 하나의 애플리케이션을 빌드하려면 매우 긴 명령어를 수행해야 한다. 여기서 Docker Compose라는 도구를 통해 다중 컨테이너 설정을 더 쉽게 관리할 수 있다. 설정 프로세스를 자동화 해주고, 단 하나의 명령과 하나의 구성 파일로 모든 컨테이너를 시작하고 제어할 수 있다.Docker Compose란?docker build와 docker run 명령을 대체할 수 있는 도구다수의 docker build, docker run을 단 하나의 구성 파일로 가짐오케스트레이션 명령 셋(set)하나의 명령을 사용하여 다중 컨테이너 애플리케이션을 시작 및 중단 가능다른 사람과 공유 가능Docker Compose는 Dockerfile을 대체하지 않는다. 오히려 Doc..
Intro코드를 변경할 때마다 이미지를 다시 빌드하지 않는 한 실행 중인 컨테이너에 변경 사항이 반영되지 않는다.이는 도커 이미지가 생성될 때 폴더의 스냅샷만 복사하므로, 복사한 뒤 발생하는 변경 사항은 컨테이너에 반영되지 않기 때문에 그런 것이다.하지만 개발 중에 도커를 사용한다면 변경 사항이 즉시 반영되는 것이 편할 것이다.(아니면 매번 리빌드해야된다,,😇)이를 바인드 마운트가 도와준다!볼륨과의 차이점컴퓨터의 파일 시스템 상의 어디에 위치해 있는지 알 수 있다. ➡ 컴퓨터 상에 매핑될 컨테이너의 경로를 설정하기 때문이다.소스 코드를 넣을 수 있다. ➡ 이렇게 하면 컨테이너가 인식해서 바인딩 마운트에서 코드를 복사한다. (최신 코드에 액세스 가능!)영구적이고 편집 가능..
이제 이미지와 컨테이너 내부의 데이터를 관리하는 방법을 알아보자.이미지와 컨테이너가 다양한 방식으로 어떻게 데이터를 관리하는가?다른 폴더 등에 연결하는 방식도커에 내장된 볼륨이라는 개념에 대해 알아보자.데이터 카테고리 / 다양한 종류의 데이터 이해하기다양한 데이터 종류가 있고, 어떤 종류의 데이터를 가지고 있는지 이해해야 직면할 수 있는 문제를 이해할 수 있다.애플리케이션(코드 + 환경)임시 애플리케이션 데이터애플리케이션이 실행되는 동안 생성된 데이터웹사이트의 경우 입력된 사용자의 데이터가 바로 그 데이터.코드의 변수에 저장할 수 있으므로 메모리에만 저장되거나, 데이터베이스나 파일에 저장될 수 있다.컨테이너가 종료될 때 그 데이터를 잃어도 상관 없다.읽고 쓰기 전용 → 컨테이너에 데이터 저장 3. 영구..
이미지이미지는 Docker의 두 가지 핵심 구성 요소 중 하나(다른 하나는 "컨테이너")이미지는 컨테이너를 위한 청사진/템플릿이미지는 읽기 전용이며 애플리케이션과 애플리케이션 환경(운영 체제, 런타임, 도구 등)을 포함이미지는 자체적으로 실행되지 않으며, 대신 컨테이너로 실행될 수 있다.이미지는 사전 빌드된 이미지(예: DockerHub에서 찾을 수 있는 공식 이미지)거나 Dockerfile을 정의하여 직접 이미지를 빌드할 수 있다.Dockerfile에는 이미지가 빌드될 때 실행되는 명령어들이 포함되어 있으며( docker build . ), 각 명령어는 이미지에 레이어를 생성한다. 레이어는 이미지를 효율적으로 다시 빌드하고 공유하는 데 사용된다.CMD 명령어: 이는 이미지가 빌드될 때 실행되는 것이 아..
Intro이번 포스팅에선 도커 이미지를 만들어 보겠다. 1. 도커 이미지 만들기도커는 이미지를 만들기 위해 컨테이너의 상태를 그대로 이미지로 저장하는 방법을 사용한다.예를 들어, 어떤 애플리케이션을 이미지로 만든다면 리눅스만 설치된 컨테이너에 애플리케이션을 설치하고, 그 상태를 그대로 이미지로 저장한다. (like 가상머신 스냅샷) 이런 과정은 콘솔에서 명령어를 직접 입력하는 것과 별 차이가 없으므로 쉘 스크립트를 잘 알아야 하지만, 좋은 샘플이 많이 공개되어 있어 잘 몰라도 된다. 그리고 컨테이너의 가벼운 특성과 레이어 개념을 이용하여 생성과 테스트를 빠르게 수행할 수 있다. 1) Sinatra 웹 애플리케이션 샘플Riuby로 만들어진 간단한 웹 애플리케이션을 도커라이징(Dockerizing) 해보자...
Intro지금까지 알아 본 것을 정리해서 컨테이너를 새로운 버전으로 업데이트하는 과정을 살펴 보겠다.그리고 YAML 방식의 설정파일을 이용한 Docker Compose 툴에 대해 가볍게 알아보자.1. 컨테이너 업데이트도커에서 컨테이너를 업데이트하려면 새로운 버전의 이미지를 다운로드(pull) 받고,기존 컨테이너를 삭제(stop, rm)한 후 새 이미지를 기반으로 새 컨테이너를 실행(run)하면 된다. 컨테이너를 삭제한다는 것은 컨테이너에서 생성한 파일이 사라진다는 뜻이다.DB로 예를 들면 데이터가 모두 사라지는 것이고, 웹이라면 사용자가 업로드한 이미지가 모두 사라진다는 것이다. 이러한 상황을 방지하기 위해 컨테이너 삭제 시 유지해야 하는 데이터는 외부 스토리지에 저장해야 한다.BEST는 AWS S3 같..
Intro여기서는 가볍게 자주 쓰는 명령어만 다룬다.모든 명령어는 여기서 참고하자.컨테이너 사용 명령어의 기본 형태docker 커맨드 (옵션) 대상 (인자)컨테이너를 다루는 모든 명령은 docker로 시작한다. 컨테이너 실행✔ 도커 실행 명령어docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] ✔ 자주 사용하는 옵션옵션설명-d백그라운드 모드(detached mode)-p호스트와 컨테이너의 포트 연결(포워딩)-v호스트와 컨테이너의 디렉토리 연결(마운트)-e컨테이너 내에서 사용할 환경변수 설정-name컨테이너 이름 설정-rm프로세스 종료 시 컨테이너 자동 제거-it터미널 입력 옵션 (-i, -t)-link컨테이너 연결 [컨테이너명:별칭] 1) ubun..
Intro이번엔 도커를 설치해 보겠다.사전에 ubuntu, WSL2 환경은 세팅해 놓아야 한다. 1. Docker 설치도커는 리눅스 컨테이너 기술이므로 Mac이나 Win에 설치할 경우 가상머신에 설치된다. 1) Linux자동 설치 스크립트curl -fsSL https://get.docker.com/ | sudo sh sudo 없이 사용하기sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기sudo usermod -aG docker your-user # your-user 사용자에게 권한주기 2) Window 10🚍 도커 설치 전 환경 설정- BIOS 에서 가상화 사용 설정(아래 이미지 처럼 가상화: 사용 표시가 떠야 함 !)- 도커를 사용하기 위해 가상화 기술인 H..
IntroDevOps의 등장으로 개발 주기가 짧아지면서 배포는 더 자주 이루어지고 MSA가 유행하면서 프로그램은 더 복잡해졌다.많은 새로운 툴의 등장과 클라우드의 발전으로 설치해야 할 서버가 무수히 많은 상황에서도커(Docker)가 등장하고 서버 관리 방식이 완전히 바뀌게 된다.1. 도커(Docker): 컨테이너 기반의 오픈소스 가상화 플랫폼서버에서의 컨테이너는 다양한 프로그램, 실행 환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해 준다.백엔드 프로그램, 데이터베이스 서버, 메시지 큐 등 어떤 프로그램도 컨테이너로 추상화할 수 있고 조립 PC, AWS, Azure, Google Cloud 등 어디서든 실행할 수 있다. 컨테이너: 격리된 공간에서 프로세스가 ..