반응형 Docker9 이미지와 컨테이너 이미지(Image)소프트웨어를 실행하기 위해서는 운영체제, 프로그램이 실행하기 위해서 필요한 요소(런타임, 라이브러리 등)와 실행시킬 프로그램이 필요하다. 이미지를 활용하면 의존 요소를 설치하는 과정 없이 이미지 이름만 지정하면 편하게 프로그램을 구동시킬 수 있다.쉽게 말해 이미지란 파일 시스템의 특정 시점을 저장해 놓은 압축 파일이다. 이미지를 통해 제작 단계에서부터 소프트웨어뿐만 아니라 소프트웨어가 실행하기 위해서 필요한 모든 구성요소(OS, 구성요소, 프로그램)를 미리 준비해서 압축한다. 압축한 이미지를 다운 받아서 run 시키면 격리된 공간에 컨테이너가 실행된다.컨테이너를 실행하면 이미지 안에 있던 프로그램이 실행된 것이다. 이미지는 백업 파일과 같아서 그 저장해 놓으면 프로그램을 실행하는 시점을.. Docker 2024. 9. 3. 도커와 가상화 기술 과거부터 현재까지 컴퓨팅 자원을 활용하는 방법은 크게 3가지가 있다.베어메탈, 하이퍼바이저, 컨테이너가 그 3가지다. 베어메탈에서 하이퍼바이저로 그리고 컨테이너로 발전해왔다.오늘은 이 3가지 방식에 대해 알아보겠다. 베어메탈베어메탈은 가상화 계층 없이 물리적 하드웨어 위에 직접 운영체제 및 애플리케이션을 설치하여 사용하는 컴퓨팅 환경이다.베어메탈의 장점은 물리적 자원을 가상화 계층 없이 사용하므로 성능에서 이점을 가질 수 있다. 그러나 베어메탈이 가지는 단점이 기업 입장에서 더 치명적이다.베어메탈방식은 서버를 확장하려면 매번 하드웨어적인 의미의 서버를 매번 구입해야한다. 비용적인 측면에서 부담스러우며 급하게 서버를 확장해야할 때는 직접 컴퓨터를 구매하며(배송 시간, 쇼핑 시간) 유연성이 떨어지고, 컴퓨터.. Docker 2024. 5. 27. 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. 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. 도커 컴포즈 도커 컴포즈 시스템 구축과 관련된 명령어를 하나의 텍스트 파일(정의 파일)에 기재해 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한 번에 하도록 도와주는 도구가 바로 도커 컴포즈다. Dockerfile과 비슷한 면모를 보인다. 도커 컴포즈는 시스템 구축에 필요한 설정을 YAML 포맷으로 기재한 정의 파일을 이용해 전체 시스템을 일괄 실행 또는 일괄 종료 및 삭제할 수 있도록 도와주는 도구다. 정의 파일에는 컨테이너나 볼륨을 '어떠한 설정으로 만들지'에 대한 항목이 기재돼 있다. 그럼 이제 중요한 up 커맨드와 down 커맨드에 대해 알아보자. up 커맨드: docker run 커맨드와 비슷하다. 정의 파일에 기재된 내용대로 이미지를 내려받고 컨테이너를 생성 및 실행한다. 정의 파일에는 네트워크나.. Docker 2022. 8. 18. 여러 개의 컨테이너를 연동해 실행하기 이번 포스팅에서는 여러 개의 컨테이너를 다루는 연습 소재로서 워드프레스 사이트를 구축해볼 것이다. 데이터베이스로는 MySQL을 사용하며, 컨테이너는 워드프레스 공식 이미지를 사용할 것이다. 워드프레스 공식이미지는 워드프레스 프로그램 본체와 아파치, PHP 런타임을 함께 포함하고 있어서 매우 편리하다. 워드프레스 컨테이너와 MySQL 컨테이너가 있으면 워드 프레스를 사용할 수 있다. 단순하게 컨테이너를 두 개 만들기만 해서는 두 컨테이너가 연결되지 않는다. 따라서 가상 네트워크를 만들고 이 네트워크에 두 개의 컨테이너를 소속시켜 두 컨테이너를 연결한다. 실습에서 사용할 간단한 네트워크 커맨드를 확인하고 가자. 가상 네트워크 생성: docker network create 네트워크 이름 가상 네트워크 삭제: .. Docker 2022. 8. 17. 도커 시작하기 도커 환경을 구축하는 방법은 크게 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 다음 반응형