[DevOps]/[Docker]

    [Docker] 도커 빌드 캐시 공유 가능한 명령어, 공유 불가 명령어

    [Docker] 도커 빌드 캐시 공유 가능한 명령어, 공유 불가 명령어

    도커파일의 명령어 중 COPY와 ADD는 캐시를 이용할 때 String과 함께 파일의 내용 변화도 확인한 후 캐시 사용 여부를 결정한다고 저번 포스팅에서 알아봤습니다. [Docker] Docker cache 빠른 빌드도커에 대해 공부하다 도커 캐시에 대해 알게되었고 도커 레이어에 대해 찾아보게 되었습니다. 도커 이미지를 빌드하면서 더욱 빠르게 빌드를 진행할 수 있는 방법이 있다해서 기록해보려고 합hgk5722.tistory.com 그리고 도커는 빌드시 레이어를 만들어 캐시를 저장한 뒤 활용할 수 있다 했습니다. 같은 도커파일 내에서 어떤 상황일때 캐시 레이어를 활용할 수 있는지 확인해 보겠습니다. 예시: 디렉토리 명은 nodejs-docker-app이고 내부엔 다음과 같은 파일이 있다고 가정하겠습니다.D..

    [Docker] Docker cache 빠른 빌드

    [Docker] Docker cache 빠른 빌드

    도커에 대해 공부하다 도커 캐시에 대해 알게되었고 도커 레이어에 대해 찾아보게 되었습니다. 도커 이미지를 빌드하면서 더욱 빠르게 빌드를 진행할 수 있는 방법이 있다해서 기록해보려고 합니다. 도커는 image를 빌드하고 container를 실행할 때 layer를 쌓게됩니다. 매번 다 빌드를 새로하면 속도도 느리고 리소스 손실도 발생할 수 있습니다. 그래서 도커는 이전에 빌드시 저장해둔 기록을 캐시로 가지고 있으면서 새로운 이미지를 만들 때 캐시를 활용해 빠른 속도로 빌드가 가능합니다. 도커는 어떤 기준을 가지고 캐시를 활용할까요? 도커에서는 "ADD, COPY"를 제외하면 String의 형태만 확인하고, "ADD, COPY"등 호스트OS의 파일 또는 디렉토리를 컨테이너 안의 경로로 복사하는 명령어는 Str..

    [Docker] 도커파일 기본설정 ubuntu, alpine, python:3.9-slim

    Dockerfile은 FROM부터 시작합니다! # Dockerfile # 베이스 이미지 설정 FROM python:3.9-slim # 작업 디렉토리를 /app으로 설정 WORKDIR /app # 필요한 패키지 설치 RUN apt-get update && apt-get install -y vim # Flask 설치 RUN pip install Flask # 파이썬 파일을 복사 COPY app.py . # Flask 앱 실행 CMD ["python", "app.py"] slim 이미지는 debian 운영체제 기반으로 크기는 60MB 정도입니다. 패키지 관리 시스템으로 apt-get을 사용합니다. 작업디렉토리를 /app으로 설정하면 루트 디렉토리 아래에 /app 디렉토리가 생성되고 그 안에서 작업이 일어나게 ..

    [Docker] 도커 기본 명령어

    [Docker] 도커 기본 명령어

    flask 어플리케이션을 도커를 이용하여 로컬에서 실행해 보겠습니다. 일단, 보기 편하게 Docker Desktop을 설치해 줍니다. https://www.docker.com/products/docker-desktop/ Docker Desktop: The #1 Containerization Tool for Developers | Docker Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux. www.docker.com 이 곳에서 본인의 운영체제에 맞는 도커 데스크탑을 설치하여 GUI 환경에서 컨테..

    [Docker] 도커의 이미지, 컨테이너는 무엇일까?

    [Docker] 도커의 이미지, 컨테이너는 무엇일까?

    예전에 학교에서 이론을 배웠지만 기억이 잘 안나는 관계로 공부 겸 정리 하여 작성해 보려고 합니다. Docker란? Go언어로 작성된 리눅스 컨테이너를 기반으로 하는 오픈소스 가상화 플랫폼입니다. 도커를 알기 위해선 가상머신(virtual machine)에 대해 알아야 합니다. 가상 머신은 Host OS 위에 하이퍼 바이저를 거쳐 각각의 게스트 OS를 실행합니다. 예시로 윈도우 운영체제 위에 VirtualBox같은 소프트웨어를 설치하여 우분투 운영체제를 구동하는 방식이 있습니다. 위와 같은 방식은 하나의 하드웨어 위에서 여러개의 운영체제를 운영할 수 있다는 장점이 있지만, 가상 머신으로 무엇인가를 하려면 하이퍼바이저를 거쳐야 하기 때문에 속도 저하가 필연적입니다. 또한 가상머신을 배포할 때의 프로그램(...