반응형 docker8 이미지와 컨테이너 이미지(Image)소프트웨어를 실행하기 위해서는 운영체제, 프로그램이 실행하기 위해서 필요한 요소(런타임, 라이브러리 등)와 실행시킬 프로그램이 필요하다. 이미지를 활용하면 의존 요소를 설치하는 과정 없이 이미지 이름만 지정하면 편하게 프로그램을 구동시킬 수 있다.쉽게 말해 이미지란 파일 시스템의 특정 시점을 저장해 놓은 압축 파일이다. 이미지를 통해 제작 단계에서부터 소프트웨어뿐만 아니라 소프트웨어가 실행하기 위해서 필요한 모든 구성요소(OS, 구성요소, 프로그램)를 미리 준비해서 압축한다. 압축한 이미지를 다운 받아서 run 시키면 격리된 공간에 컨테이너가 실행된다.컨테이너를 실행하면 이미지 안에 있던 프로그램이 실행된 것이다. 이미지는 백업 파일과 같아서 그 저장해 놓으면 프로그램을 실행하는 시점을.. Docker 2024. 9. 3. docker-compose의 Redis-cluster와 통신이 안된다..!? 최근 작년에 진행한 졸업 프로젝트를 리팩토링하고 있다. 프로젝트 EC2에서 스프링 부트 애플리케이션과 도커 컴포즈를 사용한 레디스 클러스터가 동작하고 있다. DB로는 AWS RDS MySQL을 사용하고 있다. 또한 Github Action, S3, Code Deploy를 사용해 CI/CD 파이프 라인을 구축했다. 오늘은 CI/CD 파이프 라인을 구축하면서 있었던 오류에 대해 말해보고자 한다. 문제 CI/CD 파이프라인에는 스프링 부트 애플리케이션을 빌드하는 과정에서 작성한 모든 테스트(통합 테스트, 단위 테스트)를 수행하는 과정이 있다. 여기에서 문제가 발생했다. 빌드 통합 테스트 과정 중 EC2에서 동작하는 레디스 클러스터와 통신이 안됐다. 그 당시 로컬과 운영 환경에서 작성한 docker-compos.. Docker 2023. 10. 18. AWS의 컨테이너 ECS (Elastic Container Service) EC2 시작 유형 AWS에서 컨테이너를 실행하면 ECS 클러스터에 이른바 ECS 태스크를 실행하는 것이다. ECS 클러스터에는 들어있는 게 있는데 EC2 시작 유형을 사용하면 EC2 인스턴스가 들어있겠죠 EC2 시작 유형으로 EC2 클러스터를 사용할 때는 인프라를 직접 프로비저닝하고 유지해야 한다. 즉 Amazon ECS 및 ECS 클러스터가 여러 EC2 인스턴스로 구성된다. 이때 ECS 인스턴스는 특별하게 각각 ECS 에이전트(Agent)를 실행해야 한다. 그럼 ECS 에이전트가 각각의 EC2 인스턴스를 Amazon ECS 서비스와 지정된 ECS 클러스터에 등록한다. 이후에 ECS 태스크를 수행하기 시작하면 AWS가 컨테이너를 시작하거나 멈춘다... Cloud/AWS 2023. 7. 11. 졸업 프로젝트 세팅 시작하기(aws, ec2, gabia, rds, docker, spring) 다음주면 슬프게도 벌써 개강이다. 필자의 학교는 3학년 2학기에 졸업 프로젝트를 하는데, 12주 동안만 진행한다. 짧으므로 개강전에 미리 사용할 서버 환경을 조금이나마 구축하려고 한다. 먼저 할 일은 다음과 같다. (계속 수정할 여지가 있다) 새로운 AWS 프리티어 계정 생성 ec2 인스턴스 생성 후 탄력적 IP 할당 가비아에서 도메인 구매 rds 세팅. docker 세팅: 스프링 컨테이너 + nginx + redis(추후에 추가, 다른 컨테이너도 추가할 예정) ssl를 사용해 https 적용하기 도커와 깃허브 액션을 통합해 CI CD 파이프 라인 구축하기. 일단 이번 포스팅에서는 5번 스프링 컨테이너까지 띄워보겠습니다. 1. 새로운 AWS 프리티어 계정 생성 프리티어 계정으로 가입을 진행했다. http.. 프로젝트 2022. 8. 25. 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 2022. 8. 18. 도커 시작하기 도커 환경을 구축하는 방법은 크게 3가지가 있다. 리눅스 컴퓨터에서 도커 사용하기 가상 머신이나 렌탈 환경에 도커를 설치하고 윈도우나 맥을 통해 사용하기 윈도우용/맥용 도커 사용하기 실습은 3번 방식으로 진행한다. 아래 링크에서 도커를 다운로드 받으면 된다. https://www.docker.com/ Home - Docker Learn how Atomist will help Docker meet the challenge of securing secure software supply chains for development teams. www.docker.com 필자의 실습환경은 애플 맥 M1이므로 Apple Chip을 다운로드 받았다. 실행을 시키면 다음과 같이 창이 뜬다. 도커 기초 실습 시작 바로 실.. Docker 2022. 8. 16. 도커의 동작 원리 도커의 구조 일반적인 서버라면 운영체제 위에 프로그램이나 데이터가 직접 올라가겠지만 도커를 사용하는 경우에는 운영체제 위에 도커 엔진이 동작하고 그 위에서 컨테이너가 동작한다. 프로그램이나 데이터는 컨테이너 안에 위치한다. 모든 컨테이너는 리눅스 운영체제 비슷한 무언가가 들어 있다. 최소한의 컨테이너에도 리눅스 운영체제 비슷한 무언가가 들어 있다는 것이다. 빈 컨테이너라고 말해도 엄밀히 말하면 텅 빈 컨테이너는 아니다. 위 그림을 보면 도커 엔진 아래에는 운영체제가 있고, 컨테이너 속에 또 리눅스 운영체제(비슷한 것)이 있다. 이 부분이 도커의 가장 큰 특징 중 하나다. 본래 운영체제는 커널과 그 외의 주변 부분으로 구성된다. 주변 부분이 프로그램의 연락 내용을 커널에 전달하고, 커널이 하드웨어를 다룬다.. Docker 2022. 8. 12. 도커(Docker)란 무엇인가 천천히 도커에 대해 학습해보려고 합니다. 바로 시작하겠습니다. 도커(Docker)란? 도커를 정의한 다양한 자료들은 아래와 같이 얘기한다. 데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어다. 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 어플리케이션을 패키징할 수 있는 도구. 도커는 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공한다. 운영체제(비슷한 것)를 통째로 격리하는 기능이다. 도커는 주로 서버에 사용된다. 필자가 정리한 도커는 컨테이너를 활용해 애플리케이션을 독립된 환경에 격리해서 운영할 수 있는 기술이라고 정의했다. 컨테이너 먼저 위에서 언급한 컨테이너에 대해 알아보자. 컨테이너란 무엇일까? 컨테이너란 컨테이너 엔진위에서 동작하며 우리의 애플리케이션을 고.. Docker 2022. 8. 12. 이전 1 다음 반응형