728x90 컨테이너3 [Docker]개발 환경 vs. 운영 환경 개발 환경 vs. 운영 환경 앱을 dockerizing할 때 실제 앱에 담길 Dockerfile과 개발환경에서 쓰이는 Dockerfile.dev 를 별개로 작성한다. 이는 volume을 이용해서 개발 환경에서 불필요한 종속성 설치를 최소화하기 위함이다. # Dockerfile.dev FROM node:alpine WORKDIR /usr/src/app COPY package.json ./ RUN npm install COPY ./ ./ CMD ["npm", "run", "start"] COPY package.json을 RUN 이전에 배치함으로써 불필요한 종속성 설치를 생략했다. 이 때, 일반적인 docker build ./ 명령을 실행하면 Dockerfile을 자동으로 인식하지 못해 오류가 발생하므로 do.. 2023. 7. 24. [Docker]이미지 Docker 이미지 구조 이미지는 시작시 실행될 명령어+파일 스냅샷이 존재한다 시작시 실행될 명령어 외에 다른 명령어를 이용할 수 있음 docker run alpine ls 시작시 실행될 명령어를 무시하고 ls라는 명령어를 사용 가능 But, 명령어를 실행 가능하게 하는 파일이 이미지의 스냅샷 내에 없다면 에러가 발생 실행 중인 컨테이너 보기(ps) docker ps ps 명령어를 통해 실행 중인 컨테이너들을 확인할 수 있다 CONTAINER ID, IMAGE, COMMAND, CREATED, STATUS, PORTS, NAMES docker ps --format 'table{{.Names}}\ttable{{.Image}}' Names와 Image만을 조회하는 옵션을 --format을 통해 설정해줌 do.. 2023. 7. 23. [Docker]기본 개념 도커를 쓰는 이유? 프로그램 실행에 필요한 환경을 통일하기 위해 컨테이너란? 코드, 종속성 등을 패키지화해서 프로그램이 어디서나 안정적으로 빠르게 실행될 수 있도록 하는 소프트웨어 단위. 컨테이너화된 소프트웨어는 인프라에 관계없이 항상 동일하게 실행되고 어떤 개발과 스테이징의 차이에서도 균일한 작동이 보장된다. 도커 이미지(컨테이너 이미지)란? 코드, 런타임, 라이브러리 등 프로그램을 실행하는 데 필요한 모든 것을 포함하는 소프트웨어 패키지. 컨테이너는 이미지의 인스턴스라고 볼 수 있다. 도커 vs VM VM은 서버를 논리적으로 분할해서 독립적으로 이용 가능한 가상 환경의 서버 하이퍼바이저는 호스트 시스템에서 여러 게스트OS를 이용할 수 있도록 하드웨어 가상화, VM 모니터링 등을 담당하는 중간 관리 소.. 2023. 7. 21. 이전 1 다음 728x90