본문 바로가기

devops/docker

(10)
Docker 없이 Buildah 툴에서 도커 이미지 빌드하기 Docker 없이 Buildah 툴에서 도커 이미지 빌드하기 컨테이너화된 애플리케이션의 빌드와 관리는 현대 소프트웨어 개발의 필수 요소 중 하나입니다. 대부분의 사용자는 Docker를 이용하지만, Docker Engine 없이도 이미지를 빌드할 수 있는 다양한 도구가 존재합니다. 이 글에서는 그중 하나인 Buildah를 사용하여 도커 이미지를 빌드하는 방법에 대해 소개합니다. Buildah 소개 Buildah는 리눅스 컨테이너 이미지를 빌드하기 위한 도구로, Dockerfile 없이도 이미지를 생성, 수정, 그리고 버전 관리할 수 있게 해줍니다. Buildah는 OCI(Open Container Initiative) 표준을 준수하며, 도커와 호환 가능한 이미지를 생성할 수 있습니다. Buildah 설치하..
docker image를 tar파일로 저장하는 방법 개요 도커 이미지는 일반적으로 docker hub와 같은 도커 레지스트리(docker registry)에서 공유합니다. 하지만 일반적이지 않은 상황에서 도커 레지스트리를 사용할 수 없는 경우 도커 이미지를 tar파일로 만들어 공유할 수 있습니다. 이번 포스트에서는 도커 이미지나 도커 컨테이너를 tar 파일로 만들고 다시 tar파일을 도커 이미지로 만드는 방법을 알아보겠습니다. 참고 tar 파일 : .tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz 도커 이미지 -> tar 파일 도커 이미지를 tar 파일로 만들때는 `docker save`명령어를 사용합니다. docker save [option] [tar filename] [image name] 파일을 이름을 지정하는 옵션은 `--..
도커 이미지 사이즈 줄이기 - Best Practices 공식 베이스 이미지를 사용하세요. 공식 이미지는 정기적으로 업데이트 되며 안전합니다. Alpine 리눅스를 베이스 이미지로 사용하여 최종이미지를 생성하세요. Apline 이미지는 가볍습니다. apt를 사용하는 경우에는 RUN apt-get update 와 apt-get install을 체인으로 결합하여 사용하세요 패키지는 한 명령어줄에 연결하여 사용하고 알파벳 순서대로 나열하여 레이어 수를 줄이고 Dockerfile을 깔끔하게 정리할 수 있습니다. RUN apt-get update && apt-get install -y \ package-one \ package-two && rm -rf /var/lib/apt/lists/* RUN 명령어 끝에 && rm -rf /var/lib/apt/lists/* 를 포..
도커 빌드 속도를 높히고, 도커 이미지 크기를 줄이는 방법 도커의 빌드 사이클 속도를 높이고 가벼운 도커 이미지를 만드는 방법을 알아보겠습니다.Dockerfile 명령어FROM : 부모 이미지를 지정LABEL : 메타 정보, Maintainer 정보 등을 지정, 자유롭게 사용가능함ENV : 환경변수 지정RUN : 컨테이너에 패키지를 설치하는 등의 명령어를 실행하고 이미지 레이어를 생성COPY : 파일과 디렉토리를 컨테이너에 복사ADD : 파일과 디레토리를 컨테이너에 복사하는 것은 COPY 와 동일하지만 tar파일은 자동으로 언팩함CMD : 실행 컨테이너의 대한 명령어나 인수를 전달함, CMD는 한개만 지정 가능WORKDIR : 작업 디렉토리를 지정함(디렉토리가 없으면 생성함)ARG : 도커 이미지를 빌드할때 Docker에 전달하는 변수를 정의함ENTRYPOINT..
도커 컨테이너 한꺼번에 삭제하는 명령어 모음(정지된 컨테이너만 삭제하는 명령어 포함) 정지된 상태의 모든 도커 컨테이너 삭제하는 방법 도커로 작업을 하면서 docker run 명령어를 사용을 반복하다 보면 정지되어 삭제되지 않은 컨테이너들이 쌓이기 시작합니다. 현재 동작 중인 컨테이너를 제외하고 정지된 컨테이너만 삭제하고 싶을 때는 아래 명령어를 사용하세요. docker rm $(docker ps -a -q -f status=exited) 설명을 추가하자면, status가 exited 된 도커 컨테이너의 ID 값만 출력(-q옵션)하여 삭제 (rm 명령어)하는 명령어 세트입니다. 그냥 모든 도커 컨테이너 삭제하는 방법 추가적으로 한꺼번에 모든 컨테이너를 삭제하는 방법은 아래와 같습니다. docker stop $(docker ps -a -q) docker rm $(docker ps -a -q..
도커 용량 확보하기(사용하지 않는 컨테이너와 이미지 한번에 삭제) 서버가 아닌 노트북(컴퓨터)에서 Docker Desktop 사용하다 보면 항상 용량 문제에 부딪힙니다. 가상으로 잡아놓은 용량이 잦은 빌드와 컨테이너 생성으로 인해 금방 차버리기 때문입니다. 이 문제를 한번에 해결해줄 명령어를 알려드릴게요. docker system prune -af 이 명령어로 현재 실행중인 컨테이너와 사용중인 이미지 이외에는 전부 삭제해줍니다. 단, 저장하지 않은 이미지도 전부 삭제되니까 주의해서 사용하시기 바랍니다.
Docker engine 없이 buildah 툴에서 도커 이미지 빌드하기 도커에서 이미지를 빌드하기 위해서는 필시 Docker Engine이 필요하기때문에, Docker Engine이 설치되어 있는 호스트에서 빌드를 하거나 개인 PC에 가상 도커 환경을 설치해야하는 불편함이 존재했습니다. 도커 이미지를 단지 빌드만 해야하는 상황에서는 도커 엔진없이 빌드만 할 수 있는 툴을 알게 되어 소개해드리겠습니다. BUILDAH https://buildah.io/ buildah.io Buildah - a tool that facilitates building OCI container images. buildah.io 향후에 빌드를 하기위하 설치 방법 및 빌드 방법을 업데이트 하겠습니다. 그리고 Dockerhub에 업로드 하는 방법도 같이 올리도록 하겠습니다. 참고할 만한 유튜브 영상
도커 리소스 한꺼번에 정리하는 docker prune 명령어 도커 리소스 정리하기 도커를 사용하다 보면 특히 도커 데스크톱을 사용하면 리소스 부족에 시달리는 경우가 많습니다. 이렇때 한꺼번에 사용하지 않는 도커 리소스들을 정리할 필요가 있습니다. 도커를 간단하게 정리할 수 있는 방법을 알려드리도록 하겠습니다. 단, 중요한 리소스가 날라갈 수도 있으니 주의해서 사용하시기 바랍니다. 중지된 컨테이너 전부 삭제 중지된 컨테이너르 전부 삭제합니다. docker container prune 이름 없는 모든 이미지 삭제 도커에서 이미지를 빌드하다 보면 이름 없는 이미지들이 쌓이는데 이런 이미지를 한꺼번에 정리합니다. docker image prune 사용되고 있지 않은 네트워크 삭제 도커 컴포저등을 이용하면 네티워크를 많이 생성하게 되는 데 사용되지 않는 네트워크를 전부 정..