docker

kakfa의 등장 배경실시간으로 데이터를 처리하는 과정에서, 다수의 producer 와 consumer가 개별적인 연결을 맺는 구조의 경우 하나의 시스템만 추가되어도 통신 구조가 복잡해진다. 이런 문제를 해결하기 위해서 카프카를 통해, 메세지와 데이터의 흐름을 중앙화하여 관리한다.   Kafka 의 구성요소 producer : 정보를 제공하는 processconsumer: 정보를 제공받아서 사용하려는 processconsumer group : 카프카 컨슈머들은 컨슈머 그룹에 속한다. 여러개의 컨슈머가 같은 컨슈머 그룹에 속할 때 각 컨슈머가 해당 토픽의 다른 파티션을 분담해서 메세지를 읽을 수 있다.broker : 데이터를 저장하고 수신 및 전달하는 node (그림은 MQ == Broker 같이 보이는데..
기본이 되는 hadoop cluster docker-compose.yml 은 아래의 repository 를 참고하였으며, presto 엔진을 사용하기 위해 수정하였다.  https://github.com/big-data-europe/docker-hadoop GitHub - big-data-europe/docker-hadoop: Apache Hadoop docker imageApache Hadoop docker image. Contribute to big-data-europe/docker-hadoop development by creating an account on GitHub.github.com docker-compose.yml 파일은 다음과 같다. version: "3"services: nameno..
Intro 지인들과 사이드 프로젝트로 개발한 Django 앱을 deploy 해보는 예제로 Docker Image를 배포하는 간단한 hands on 을 소개해보겠습니다. Docker Image로 관리하는게 배포할 때 버전관리나 환경 구축 시에 편리할 것 같아서 Image화하였습니다. 아래의 Git Repository 가 개발한 Django 앱 입니다. https://github.com/FoodieZone/Backend GitHub - FoodieZone/Backend Contribute to FoodieZone/Backend development by creating an account on GitHub. github.com 작업 및 배포 환경 Host Server : ubuntu 22.04 Cloud S..
프로젝트에서 온프레미스 환경에 있는 MongoDB 데이터베이스를 AWS DMS 를 사용하여 S3로 마이그레이션을 하게 되었다..!! DMS CDC 기능을 사용해보기 위해서 mongoDB 레플리카 셋을 구축해보게 되었다. MongoDB ReplicaSet 이란 ? Replica Set은 쿠버네티스에서도 등장하는데, Mongo DB에서는 관점이 조금 다르다. 데이터베이스의 데이터를 여러 서버에 동일한 데이터 셋을 저장하고 운영하기 위한 클러스터이다. Replica Set을 구성해서, 하나의 서버에 장애가 일어나더라도 다른 서버가 동일한 데이터 셋을 운영할 것이므로 가용성을 보장할 수 있다. Replica Set 의 패턴 MongoDB에서 레플리카셋을 구성하는 패턴은 크게 두가지이다. 1. PSS (Prima..
docker push 도커 저장소에 이미지를 업로드 하기 위해서는 우선 로그인을 해야한다. $ docker login 로그인이 되면 push 명령어를 통해 이미지를 업로드 한다. 이미지 파일의 이름 형식을 꼭 지켜주어야 한다 !! $ docker push 도커허브_사용자ID/IMAGE:TAG 업로드한 이미지 또한 pull 명령어로 로컬에 받아올 수 있다.
1. link 사용하기 도커에서는 같은 bridge 네트워크를 사용하는 컨테이너끼리 통신할 수 있다. link를 사용하면 컨테이너의 이름 또는 별칭을 지정하여 통신할 수 있다. link는 '--link 컨테이너_이름' 형태로 --link 옵션을 통해 지정한다. 단 link로 연결해줄 컨테이너는 이전에 미리 생성되어있어야 한다. 우선 web 컨테이너를 생성한다. [user@localhost ~]$ docker container run -d --name web3 httpd:latest 827c38ecb011516344191485c051299e72852146ecaf55ca57ee242d9bc688cc os6 컨테이너를 실행시키면서 web3를 링크한다. $docker run -idt os6 --link web3..
Docker Volume 도커 볼륨은 도커에 의해서 관리되는 스토리지이다. 볼륨을 사용하는 경우는 다음과 같다. 다수의 컨테이너 사이 데이터를 공유할 때 컨테이너에서 호스트 구성을 분리할 때 컨테이너 데이터를 원격 호스트 또는 클라우드에 저장하고 싶을 때 다른 호스트로 데이터를 백업 및 복원할 때 Docker Volume 생성 docker volume create NAME 생성된 볼륨들은 /var/lib/docker/volumes 에 저장된다. Docker Volume 목록 확인 docker volume ls Docker Volume 상세 정보 확인 docker volume inspect NAME Docker Volume 컨테이너에 연결하기 -v 옵션을 붙여서 도커 볼륨에 연결해야 한다. docker r..
도커의 컨테이너 내에서 생성되는 데이터는 런타임 데이터이다. 즉, 컨테이너가 삭제되면 데이터들도 함께 삭제된다. 따라서 영구적인 목적으로 데이터를 저장하고 싶다면 컨테이너에 저장하는 것이 아니라, 컨테이너의 외부 메모리에 마운트 시킨 후 메모리에 저장을 하는 것을 권한다. Bind Mount 호스트의 파일 디렉토리와 컨테이너의 디렉토리를 연결하는 방식이다. 그렇지만 Bind Mount는 도커에 의해서 관리되지 않으며 호스트의 파일시스템에 대해 의존적이다. 또한 호스트의 민감한 파일까지 접근가능하므로 보안에 취약하다는 문제점이 있다. Bind Mount 는 컨테이너를 생성하거나 실행을 시작할 때 연결할 수 있으며 이미 실행중인 컨테이너에는 Bind Mount로 연결시킬 수 없다. 명령어는 docker ru..
minjiwoo
'docker' 태그의 글 목록