Cloud/Docker (5) 썸네일형 리스트형 [Docker] Multi-stage Build Docker 이미지를 만들 때, 빌드 과정에서 사용하는 여러 패키지나 라이브러리가 최종 이미지에 포함되면 불필요하게 이미지 크기가 커질 수 있다.애플리케이션을 배포하기 위한 최종 이미지는 빌드에 사용된 도구나 개발 의존성을 포함할 필요가 없으므로 이런 부분을 제거하고 필요한 파일만을 포함시키는 것이 좋다.이를 해결하기 위해 Multi-stage 빌드(Multi-stage Build)를 사용한다. Multi-stage 빌드란?Multi-stage 빌드는 Dockerfile에서 여러 개의 스테이지를 정의하여 빌드 과정과 실행 환경을 분리하는 방법이다. 각 스테이지는 독립적으로 실행되며, 이전 스테이지에서 생성된 아티팩트를 다음 스테이지로 전달하는 방식으로 진행된다. 이 방식은 최종 이미지에 필요한 파일만 남.. [Docker] Node.js 경량 웹서버 컨테이너화 및 MySQL 연동 소스코드 다운로드Node.js 경량 웹서버 코드는 여기서 받을 수 있다. GitHub - docker/getting-started-app: A simple application for the getting started guide in Docker's documentationA simple application for the getting started guide in Docker's documentation - docker/getting-started-appgithub.com $ git clone https://github.com/docker/getting-started-app.git MySQL 컨테이너 활성화1. 네트워크 생성$ docker network create todo-app 2. MySQ.. [Docker] Networking 이 글은 도커 공식문서(Docker workshop)를 기반으로 정리되었습니다. 공식 튜토리얼에서 이렇게 설명한다.'컨테이너 시작 시 네트워크를 할당하거나, 이미 실행 중인 컨테이너에 네트워크를 할당할 수 있다.'$ docker network create todo-app 네트워크를 할당하는 것치고 명령어가 너무 간단하다.내가 아는 그 네트워크가 맞는 건가 싶어 공식 문서의 설명을 읽어보았다. NetworkingLearn how networking works from the container's point of viewdocs.docker.com ❓네트워킹 : 컨테이너의 관점에서.컨테이너 네트워킹은 컨테이너들이 서로 또는 Docker 외부의 워크로드와 연결 및 통신할 수 있도록 하는 기능을 의미한다. .. [Docker] 볼륨(Volume)을 이용한 데이터 영속성 관리 도커는 모든 컨테이너를 격리하기 때문에 컨테이너 삭제시 컨테이너 내부에서 변경된 데이터는 저장되지 않고 사라진다.데이터를 유지하기 위해서는 볼륨(volume)을 사용해야 한다. 도커 볼륨에는 두 가지 종류가 있다.Volume Mount (Docker가 관리)Bind Mount (호스트 디렉토리를 직접 마운트)volume mount는 docker에서 관리하기 때문에 volume을 생성하면 docker 측에서 자체 생성한 디렉토리에 데이터가 저장되지만 bind mount는 직접 마운트하기 위한 host 디렉토리를 지정한다. Volume Mount1. 볼륨 생성$ docker volume create todo-db 2. 생성한 볼륨을 연결해 컨테이너 실행$ docker run -dp 127.0.0.1:300.. [Docker] 도커를 이용한 애플리케이션 컨테이너화 및 배포 과정 도커를 쓰는 이유컨테이너를 실행하면 호스트 PC에 영향을 주지 않고 서로 다른 종속성을 동시 실행할 수 있다. 컨테이너 실행 과정도커 파일로 도커 이미지를 만들고, 이미지를 실행하면 컨테이너가 된다.(마치 프로그램을 메모리에 올리면 프로세스가 되듯, 이미지를 실행하면 컨테이너가 됨) 주요 명령어docker images : 조회docker pull {이미지 이름} : 이미지 다운로드docker run : 실행 (image -> container)docker ps -a : 실행 중인 도커 컨테이너 목록 조회docker exec : 실행 중인 컨테이너 내부에 들어가는 경우 (자주 쓰는 명령어)docker rm : stop, 컨테이너 삭제docker rmi : 이미지 삭제컨테이너 내부로 들어가는 기본 명령어.. 이전 1 다음