Docker

Docker

docker-compose의 Redis-cluster와 통신이 안된다..!?

최근 작년에 진행한 졸업 프로젝트를 리팩토링하고 있다. 프로젝트 EC2에서 스프링 부트 애플리케이션과 도커 컴포즈를 사용한 레디스 클러스터가 동작하고 있다. DB로는 AWS RDS MySQL을 사용하고 있다. 또한 Github Action, S3, Code Deploy를 사용해 CI/CD 파이프 라인을 구축했다. 오늘은 CI/CD 파이프 라인을 구축하면서 있었던 오류에 대해 말해보고자 한다. 문제 CI/CD 파이프라인에는 스프링 부트 애플리케이션을 빌드하는 과정에서 작성한 모든 테스트(통합 테스트, 단위 테스트)를 수행하는 과정이 있다. 여기에서 문제가 발생했다. 빌드 통합 테스트 과정 중 EC2에서 동작하는 레디스 클러스터와 통신이 안됐다. 그 당시 로컬과 운영 환경에서 작성한 docker-compos..

Docker

ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries

필자의 노트북은 M1 에어이다. 도커 컴포즈 파일로 실습을 하면서 이미지를 pull 하다가 아래와 같은 에러 발생했다. ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries 직역하면 '오류: 매니페스트 목록 항목에 linux/arm64/v8과 일치하는 매니페스트가 없습니다.' 이다. 오류를 보고 처음 든 생각은 애플 실리콘 칩을 지원하지 않는 것을 Pull 했구나 라는 생각이 들었다. 오류를 구글링을 해보니 이에 대한 해결책은 2가지가 있는 것 같다. 1. 첫 번째 해결책인 .yml 파일에 platform 설정 필자는 mysql 이미지를 pull 하는 과정에서 오류가 발생했다. 첫 번째 해결 법은 우리가 사용하는 docke..

Docker

도커 컴포즈

도커 컴포즈 시스템 구축과 관련된 명령어를 하나의 텍스트 파일(정의 파일)에 기재해 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한 번에 하도록 도와주는 도구가 바로 도커 컴포즈다. Dockerfile과 비슷한 면모를 보인다. 도커 컴포즈는 시스템 구축에 필요한 설정을 YAML 포맷으로 기재한 정의 파일을 이용해 전체 시스템을 일괄 실행 또는 일괄 종료 및 삭제할 수 있도록 도와주는 도구다. 정의 파일에는 컨테이너나 볼륨을 '어떠한 설정으로 만들지'에 대한 항목이 기재돼 있다. 그럼 이제 중요한 up 커맨드와 down 커맨드에 대해 알아보자. up 커맨드: docker run 커맨드와 비슷하다. 정의 파일에 기재된 내용대로 이미지를 내려받고 컨테이너를 생성 및 실행한다. 정의 파일에는 네트워크나..

Docker

여러 개의 컨테이너를 연동해 실행하기

이번 포스팅에서는 여러 개의 컨테이너를 다루는 연습 소재로서 워드프레스 사이트를 구축해볼 것이다. 데이터베이스로는 MySQL을 사용하며, 컨테이너는 워드프레스 공식 이미지를 사용할 것이다. 워드프레스 공식이미지는 워드프레스 프로그램 본체와 아파치, PHP 런타임을 함께 포함하고 있어서 매우 편리하다. 워드프레스 컨테이너와 MySQL 컨테이너가 있으면 워드 프레스를 사용할 수 있다. 단순하게 컨테이너를 두 개 만들기만 해서는 두 컨테이너가 연결되지 않는다. 따라서 가상 네트워크를 만들고 이 네트워크에 두 개의 컨테이너를 소속시켜 두 컨테이너를 연결한다. 실습에서 사용할 간단한 네트워크 커맨드를 확인하고 가자. 가상 네트워크 생성: docker network create 네트워크 이름 가상 네트워크 삭제: ..

Debin
'Docker' 카테고리의 글 목록