반응형 docker3 [Docker] 멀티 스테이지 를 이용하여 Dockerfile 빌드하기 1. 멀티스테이지란 애플리케이션을 빌드하려면 많은 의존성 패키지 및 라이브러리가 필요합니다. 그러나 실행을 위한 환경에서는 빌드하기위한 라이브러리, 패키지 등이 필요 없는 경우가 많습니다. 그럴 경우 멀티 스테이지를 사용하면 최종적으로 생성되는 이미지에 불필요한 패키지들을 제거해 이미지 자체의 용량이 커지는것을 막을 수 있습니다. 예제를 통해 확인해보겠습니다. 2. 멀티스테이지를 사용하지 않는경우 golang을 빌드하여 실행하는 이미지를 만들어보겠습니다. golang을 전혀 몰라도 상관없습니다. hello world만 찍을껍니다. (1) main.go //main.go package main import "fmt" func main(){ fmt.Println("hello world") } (2) dock.. 2021. 5. 27. [Docker] Dockerfile 작성법(jar파일을 실행하는 이미지 만들기) 1. Dockerfile이란 도커파일이란 도커 이미지를 만들기 위해 작성하는 파일을 말합니다. docker build 명령어를 통해 Dodkcerfile에서 작성한 내용을 바탕으로 이미지를 생성할 수 있습니다. 도커 이미지를 구축해 도커 레지스트리에 올려놓으면 바뀌지 않는 환경들을 어디에서든 빠르게 사용이 가능합니다. 2. 문법 문법 설명 FROM 어떤 base 이미지를 사용하는 지 기술 COPY 호스트에서 이미지에 파일 추가 ADD 호스트에서 이미지에 파일 추가(tar등 아카이브파일이나 압축파일은 압축을 풀어준다) ENTRYPOINT 빌드한 이미지를 컨테이너로 생성할때 단 한번 실행(run) CMD 빌드한 이미지를 생성 및 시작할때 실행(Docker run, start) 단 하나의 CMD만 유효하다 W.. 2021. 5. 26. [Docker] Docker(도커)란 1. docker vs vm docker가 등장하기 이전에도 호스트 시스템을 여러대의 격리된 환경으로 쓰고 싶어했습니다. docker 이전에 사용되던 가상머신은 호스트시스템위에 소프트웨어로 컴퓨터를 만들어 격리시켰습니다. (대표적인 소프트웨어는 Virtual Box, Vmware, hyper-v) 가상머신은 OS이미지 + 하드웨어 가상화를 위해 하이퍼 바이저를 사용하였으며 완전한 os를 실행시킬 수 있다는 장점이 있지만 성능이 떨어지는 크나큰 문제점이 발생하였습니다.(os를 위한 파일, 라이브러리 데이터들은 매우 무겁습니다.) 이러한 문제를 해결하기 위해 os를 직접 올리는게 아니라 호스트의 커널을 같이사용하고 프로세스(애플리케이션) 레벨에서 격리시키는 기술인 Docker가 등장하게 됩니다. contro.. 2021. 5. 24. 이전 1 다음 반응형