Docker Swarm - 시크릿
·
Infra/Docker
Docker Secrets 이란Docker Swarm에서 Secrets는 민감한 데이터를 안전하게 관리하는 방법입니다.docker secret create 명령을 통해 Secret을 생성하고, 서비스에서 사용합니다.Secret은 컨테이너 내에서 파일 형태로 마운트되며, 환경 변수나 설정 파일을 통해 서비스가 Secret을 읽을 수 있습니다.Secret은 클러스터 매니저 노드에서 안전하게 관리되며, 컨테이너가 필요할 때만 접근할 수 있습니다.docker secret ls, docker secret inspect로 Secret을 확인합니다.docker secret rm으로 삭제할 수 있습니다.  Docker Secrets 생성먼저, 민감한 정보를 Secret으로 생성합니다. 여기서는 MySQL 데이터베이스 ..
Docker Swarm - 스택
·
Infra/Docker
Stack 이란Docker Swarm에서 '스택(Stack)'을 배포하는 것은여러 서비스, 네트워크, 볼륨 등을 포함한 애플리케이션 구성을 YAML 파일로 정의한 후,Swarm 클러스터에 배포하는 방식입니다.Docker Compose 파일을 기반으로 Docker Swarm 클러스터에 스택을 쉽게 배포할 수 있습니다.  Stack 정의 (docker-compose.yml)Docker Swarm에서 스택을 배포하려면, 먼저 docker-compose.yml 파일을 만들어야 합니다. 이 파일에는 여러 서비스, 네트워크, 볼륨의 구성을 정의할 수 있습니다. 예시: docker-compose.ymlversion: "3.8"services: web: image: nginx:latest ports: ..
Docker Swarm - 네트워크
·
Infra/Docker
Docker Swarm의 네트워크네트워크 종류Overlay: 스웜 모드에서 사용하며, 여러 호스트 간에 네트워크를 생성하여 서비스가 서로 통신할 수 있게 합니다.Ingress: 서비스가 클러스터 외부에서 접근할 수 있도록 지원하는 네트워크입니다.Host: 컨테이너가 호스트 네트워크를 직접 사용하여 통신합니다.Bridge: 단일 Docker 호스트에서만 사용 가능한 네트워크입니다. docker network create --driver overlay Docker Swarm에서 네트워크 작업하기Docker Swarm 클러스터에 overlay 네트워크를 생성하면, 클러스터 내의 여러 노드에서 실행되는 컨테이너들이 서로 통신할 수 있습니다.docker network create --driver overlay m..
Docker Swarm - 서비스 배포 및 확장
·
Infra/Docker
서비스 배포(Deploy)서비스 배포는 Docker Swarm 클러스터에 컨테이너 기반 애플리케이션을 실행시키는 것을 의미합니다. 서비스는 단일 컨테이너로 이루어질 수도 있고, 여러 복제본으로 이루어질 수도 있습니다. 간단한 웹 애플리케이션 서비스 배포Nginx 웹 서버를 Docker Swarm에 배포하는 간단한 예제를 보겠습니다.이 예제에서는 nginx 이미지를 사용하여 웹 서버를 배포합니다.docker service create \ --name my-web \ --replicas 3 \ --publish published=80,target=80 \ nginx실행하면 3개의 Nginx 컨테이너가 Docker Swarm 클러스터에 배포되며,http://:80에서 웹 서버에 접근할 수 있습니다. W..
Docker Swarm - 노드의 승격, 레이블, 가용성
·
Infra/Docker
노드 승격 및 강등Docker Swarm에서 노드의 역할을 워커(worker)에서 매니저(manager)**로 승격하거나,반대로 매니저를 워커로 강등할 수 있습니다. 워커에서 매니저로 승격하면 해당 노드는 스웜의 관리 작업(서비스 업데이트, 노드 관리 등)을 할 수 있는 권한을 갖게 됩니다.매니저에서 워커로 강등하면 관리 권한을 잃고,단순히 워커 노드로만 역할(서비스의 컨테이너를 실행만)을 하게 됩니다. 스웜에서 매니저 노드 수는 홀수(1, 3, 5개 등)로 유지하는 것이 좋습니다.매니저가 짝수일 경우, 의사 결정이 어려워질 수 있으며과도한 매니저 노드는 성능 저하를 일으킬 수 있습니다. docker node promote ()워커를 매니저로 승격하기- worker-1이 매니저 노드로 승격예시docke..
Docker Swarm - 시작 및 노드추가
·
Infra/Docker
1. 도커 스웜 시작하기Docker Swarm은 Docker의 오케스트레이션 도구로, 여러 Docker 호스트를 클러스터로 묶어 관리할 수 있게 해줍니다.  주요 기능은 다음과 같습니다:- 클러스터 관리: 여러 Docker 호스트(노드)를 하나의 클러스터로 구성하여 관리합니다.- 서비스 배포: 컨테이너를 여러 노드에 분산 배포하고, 필요한 수의 복제본을 유지합니다.- 로드 밸런싱: 클러스터 내에서 트래픽을 자동으로 분산하여 서비스의 가용성과 성능을 높입니다.- 고가용성: 노드가 실패해도 다른 노드에서 서비스가 계속 실행되도록 보장합니다. docker info도커 스웜 상태보기아래 명령어를 통해 도커 스웜이 실행되고 있는지 확인할 수 있습니다.docker info>>>...Swarm: inactive.....
Apache Kafka - Docker를 통한 환경 셋팅
·
DataPipeline/Kafka
Kafka 운영시에는 AWS EC2에 설치하거나 온프로미스 서버에 환경셋팅 한다. 최근에는 쿠버네티스를 통해 운영하기도하는데, 로컬에서 테스트 및 이것저것 Toy Project하기에는 도커로 설치하는게 가장 심플하다. 도커 이미지는 bitnami image를 사용한다. confluentinc image도 있지만 bitnami가 pull 횟수가 가장 많다. kafka는 zookeeper 이미지도 설치해야한다. KRaft라고 zookeeper없이 설치하는 방법도 있지만 대부분의 문서가 kafka-zookeeper 한 set으로 설명하고 있고 HBase와 같이 zookeeper와 함께 사용하고 있는 프로그램들이 있기에 익숙해지는 것이 좋다. [ 프로젝트 설정 ] 일단 프로젝트를 만든다. 이 글에선 Pychar..
Docker - 도커파일
·
Infra/Docker
[ 도커파일이란? ] Docker상에서 실행시킬 컨테이너의 구성 정보(미들웨어, OS, 어플리케이션 등)을 기술하기 위한 파일 확장자는 필요없음 Dockerfile이란 파일명 말고 다른 파일명으로 쓸 수 있지만 build시 명시해줘야 함 [ Docker File을 이용한 Sample ] Dockerfile # 베이스 이미지 설정 FROM ubuntu:latest (or dighests로 지정: FROM ubuntu@sha256:se21f... ) # Nginx 설치 RUN apt-get update && apt-get install -y -q nginx # 파일 복사 COPY index.html /usr/share/nginx/html # Nginx 시작 CMD ["nginx", "-g", "daemon ..
wave35
'docker' 태그의 글 목록