도커 이미지, 도커 컨테이너를 효율적으로 관리하려고 할 때 가 있다. 만약 여러 프로젝트에서 공용으로 사용할 Ubnutu 이미지를 만들어 Base 이미지로 활용될 수 있으며, CI/CD 시간을 줄이고자 Multi Stage Build 을 이용할 수 도 있다. 멀티 스테이지 빌드 멀티 스테이지 빌드는 하나의 Dockerfile에서 스테이지를 여러 개로 나누어 빌드 프로세스를 만드는 것을 말한다. 각 스테이지는 이미지의 일부분을 생성하며, 이전 스테이지에서 생성된 파일을 다음 스테이지로 전달할 수 있다. 이 과정으로 최적화가 가능하다. 멀티 스테이지 빌드의 장점 이미지 크기 감소 빌드 프로세스 간소화 의존성 관리 용이성 이미지 크기 감소 사용 예시 CI/CD 과정에서 쓰이며 마지막 스테이지에는 최소한의 파일..
DevOps/도커 (Docker)

Dockerfile은 Docker 이미지를 빌드할 때 사용하는 스크립트다. 이미지를 빌드할 때 Docker는 Dockerfile 의 각 명령어를 실행하고 그 결과를 이미지 Layer 별로 캐싱한다. 이미지 Layer 캐싱을 통해 빌드 시간을 절약할 수 있다. 도커 이미지 의 Layer 을 적절히 나누어 캐싱하기 위해서는 캐싱 가능한 명령어를 최상단에 배치하고, 변경 가능성이 높은 명령어를 뒤로 배치하는 두가지만 지켜도 좋다. 또한 도커 공식 홈페이지에서 안내하는 멀티스테이지 빌드와 이미지 레이어를 적절히 분리하는 과정까지 추가하여 더 좋은 퍼포먼스를 낼 수 있으며 이러한 전략을 통해 이미지 빌드 성능을 높이고 불필요한 시간과 리소스를 절약할 수 있다. Multi-stage builds Learn abou..
hello world 실행 도커를 처음 시작할 때 hello-world 을 통해 온보딩을 시작할 수 있다. $ docker run hello-world --- 출력 결과 --- Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 478afc919002: Pull complete Digest: sha256:03b30c6a3c320ff172b52bd68eddffde6ded08ce47e650fe52de861c5e9df46d Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that you..

VM(Virtual Machine)이라는 기술과 컨테이너(Container)라는 기술은 2000년도쯤에도 존재했고, 컨테이너는 VM을 기반으로 동작했다. 또한 컨테이너 기반의 Docker 가 출시된 것은 2013년으로 10년밖에 되지 않았다. 이러한 배경속에서 VM과 Docker을 비교하며 서로를 알아갈 필요가 있다. 미리 알고 있으면 좋은 내용으로 VM 과 Docker 의 차이는 Cuest OS 의 유무이다. VM : 분할 공간에서의 가상환경, Virtual Machine 호스트 시스템 : 서버의 OS 게스트 OS : VM 의 OS 하이퍼바이저 : 게스트OS를 구동 및 모니터링도커의 출시 배경Pycon US 2013 에서 Docker, Inc가 처음으로 세상에 공개되었다.Pycon에서 Docker 가 ..