728x90
컨테이너 환경이 확산되면서, 애플리케이션 배포 방식도 이미지 기반으로 변화하고 있다. 특히 클라우드 환경에서는 개발(dev), 테스트(test), 운영(prd) 환경을 명확히 구분하고, CICD 파이프라인을 통해 소스 커밋 부터 배포까지 전 과정을 자동화하는 것이 일반적이다. 컨테이너 환경에서는 애플리케이션의 배포 단위가 컨테이너 이미지가 된다. (Legacy 환경은 war 파일 또는 소스 코드 자체가 될 수 있다) 컨테이너 이미지는 여러 개의 레이어(Layer)로 구성되어 패키징되며, 이를 이미지 레지스트리에 저장한다. 이미지 레지스트리는 퍼블릭 레지스트리(DockerHub, AWS ECR, Azure ACR 등)일 수도 있고, 프라이빗 레지스트리(Nexus, Harbor, Quay 등)일 수도 있다...
컨테이너 생태계가 성숙해지면서 Docker를 대체하는 여러 도구들이 등장하고 있다. 특히 보안, 성능, 효율성 측면에서 Docker의 한계점을 극복하는 툴들이 많은데, 오늘은 그 중 대표적인 Podman에 대해 알아보려 한다. Docker CLI의 한계점은 이전 Buildah 포스팅에서 자세히 다루었기 때문에 해당 글을 참고하면 좋을 것 같다. Docker를 대체하는 컨테이너 빌드 도구 : Buildah 활용하기컨테이너 이미지를 만들고 관리하는 방법에는 여러 가지가 있다. Docker는 컨테이너 이미지를 만들고 기동하는 표준으로써 오랜기간 자리잡아 왔다. 이전에는 Docker를 떠올리는 사람이 많았지만,nayoungs.tistory.com# Podman이란?Podman은 Red Hat에서 개발한 컨테이너..
컨테이너 이미지를 만들고 관리하는 방법에는 여러 가지가 있다. Docker는 컨테이너 이미지를 만들고 기동하는 표준으로써 오랜기간 자리잡아 왔다. 이전에는 Docker를 떠올리는 사람이 많았지만, 최근에는 Docker를 대체하는 툴들이 많이 사용되고 있다. 오늘은 Buildah라는 이미지 빌드 툴에 대해 알아보려 한다. # 기존 Docker의 한계점 1) 데몬 의존성: Docker는 항상 백그라운드에서 실행되는 데몬이 필요하다.Docker는 Docker Daemon(Docker Server)과 Docker CLI(Client) 간의 통신으로 구성되어 있어, 둘 중 하나의 기능만을 원하는 경우 또는 Client의 특정 기능(컨테이너 기동, 도커 이미지 빌드, 이미지 Pull & push 등)만을 사용하..
Docker의 IaC인 Docker Compose를 이용하여 WordPress를 배포해보자 환경 구성 먼저 실습을 진행할 디렉토리를 생성한다. $ mkdir wp $ cd wp 다음으로 WordPress를 생성 및 구성하는 docker-compose.yaml을 작성한다. docker-compose.yaml version: "3" services: wp-db: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: P@ssw0rd MYSQL_DATABASE: wordpress MYSQL_USER: wpadm MYSQL_PASSWORD: P@ssw0rd volumes: - wp-db-vol:/var/lib/mysql networks: - wp-..
Docker Compose는 Docker의 IaC와 같은 것으로, yaml 코드를 통해 컨테이너를 어떻게 실행할 지 정의하는 것이다. docker-compose 는 옛 명령어로, docker compose가 최근에 생긴 명령어이고, 옵션에서 몇가지 차이가 있다. 디렉토리 구성 먼저 실습을 실행할 디렉토리를 만들자. 본 글에서는 총 3개의 실습을 진행할 예정인데, 각각 example1 exampl2 exmple3 디렉토리에서 진행할 예정이다. $ mkdir compose 📋 실습1 $ mkdir example1 $ cd compose/example1 Docker Compose 파일은 docker-compose.yaml 또는 docker-compose.yml 로 정해져있다. 아래와 같이 docker-comp..
이미지는 웹 인터페이스에서 올리지 못하고, 반드시 명령어로만 올릴 수 있다. Docker Hub 에 이미지를 push하기 위해서는 docker login 명령을 통해 로그인 해야한다. (인증을 받아야한다.) $ docker login Login Succeeded 가 나와야 로그인에 성공한 것이다. 로그인하면 인증정보가 홈 디렉토리의 ./docker/config.json 에 저장된다. 이미지를 빌드할 때는 홈 디렉토리의 파일이 올라갈 수 있기 때문에 홈 디렉토리에서 하면 안되고, root에서 해도 안된다. 로컬에 있는 이미지를 아무거나 docker push 해보자 $ docker push pyhello:v1 The push refers to repository [docker.io/library/pyhell..