docker

· Redis
HA(High availability)와 Sentinel Redis 서버를 한 대로만 서비스할 경우 단순히 캐시 용도로만 사용하거나 클라이언트에서 해싱해서 사용한다면 장비에 이상이 발생해 데이터 일부가 사라진다고 하더라도 문제가 없지만 유실되어서는 안 되는 데이터에 경우에는 큰 문제가 발생할 수 있습니다. 이러한 문제들을 방지하지 위해 Redis 서비스를 운영할 때는 기본적으로 마스터/슬레이브 형태로 서비스하는데, Redis 2.6 버전부터 슬레이브의 slave-read-only가 yes로 설정되어 있어서 쓰기 요청은 모두 실패하므로 슬레이브의 전환 기능은 꼭 필필요합니다. 또한 장애가 발생하더라도 제대로 운영하려면 마스터의 장애를 정확히 판별하고 슬레이브를 마스터로 승격해야 시켜야 합니다. 그다음 해당..
· Redis
Redis 복제 Redis 주요 특징 중 하나가 DBMS에서 제공하는 유사한 복제 기능이 있다는 것입니다. 복제 기능은 장애 발생 시 빠른 서버 교체나 장비 교체 등에 사용할 수 있습니다. Redis 복제 모델 Redis는 마스터/슬레이브 형태의 복제 모델을 제공합니다. 이를 통해서 마스터의 변경이 슬레이브로 전파됩니다. 한 대의 슬레이브는 오직 한 대에 마스터만 가질 수 있고 슬레이브는 다른 장비의 마스터로도 동작할 수 있습니다. Docker Compose를 이용한 Redis 마스터 슬레이브 구성하기 1. 네트워크 생성 $ docker network create redis-network --driver bridge $ docker network ls NETWORK ID NAME DRIVER SCOPE ..
· Redis
1. Redis의 이해 Redis란 무엇인가? Remote Dictionary Server로 key-value 형태로 데이터를 저장하고 관리하는 서버를 의미합니다. Redis의 주요 사용자들은 이미 대규모 서비스를 운영하고 있는 큰 기업들이다. 여러가지 Red devbksheen.tistory.com 1. Redis의 이해글에서 Redis가 무엇인지 특성은 무엇인지 이해해 보았다면 이번글에는 Docker로 Redis를 실행하는 방법에 대해 정리해보겠습니다. 해당 글은 Redis를 실행하는 내용이므로 Docker에 대한 자세한 설명글은 기재하지 않았습니다. 1. Docker Image Pull docker hub에 접속해 redis를 검색해보면 버전을 확인할 수 있습니다. redis Tags | Docke..
· AWS
다들 아시고 계시겠지만 GitHub Actions가 무엇인지, Amazon ECS Fargate가 무엇인지 간단히 정리해보았습니다. GitHub Actions란? GitHub Actions는 GitHub에서 호스팅하는 CI/CD 툴입니다. 개발자가 코드 변경을 자동으로 빌드, 테스트, 배포하는 프로세스를 자동화하기 위한 워크플로우 생성할 수 있습니다. 이는 프로젝트에서 이슈를 해결하고 배포를 관리하는 데 유용합니다. GitHub Actions는 저장소에 이벤트가 발생할 때 트리거가 됩니다. 예를 들어, 코드 푸시, 풀 리퀘스트, 이슈 등록, 릴리스 발행 등의 이벤트가 트리거가 될 수 있습니다. 이러한 이벤트에 대한 트리거를 설정하고, 트리거를 받으면 실행되는 작업을 작성할 수 있습니다. GitHub Ac..
save나 export와 같은 방법으로 이미지를 단일 파일로 추출해 배포할 수도 있지만 이미지 파일의 크기가 너무 크거나 도커 엔진의 수가 많다면 이미지를 파일로 배포하기 어렵다. 또한 도커의 이미지 구조인 레이어 형태를 이용하지 않으므로 매우 비효율적이다. 이를 해결하는 방법은 도커 허브(Docker Hub)를 사용하거나 도커 사설 레지스트리(Docker Private Registry)를 사용하는 방법 등 여러 가지가 있다. 레지스트리 컨테이너 실행 도커 사설 레지스트리를 사용하면 개인 서버에 저장소를 생성할 수 있다. 이 레지스트리는 컨테이너로서 구현되므로 이에 해당하는 도커 이미지가 존재한다. $ docker run -d --name myregistry -p 5000:5000 --restart=al..
save나 export와 같은 방법으로 이미지를 단일 파일로 추출해 배포할 수도 있지만 이미지 파일의 크기가 너무 크거나 도커 엔진의 수가 많다면 이미지를 파일로 배포하기 어렵다. 또한 도커의 이미지 구조인 레이어 형태를 이용하지 않으므로 매우 비효율적이다. 이를 해결하는 방법은 도커 허브(Docker Hub)를 사용하거나 도커 사설 레지스트리(Docker Private Registry)를 사용하는 방법 등 여러 가지가 있다. 도커 허브 사이트에서 이미지를 검색할 수 있고, 해당 이미지에 대한 정보도 확인이 가능하다. 도커 허브 저장소 생성 도커 허브에 이미지를 올리기 위해 로그인 후 저장소를 생성한다. 기본적으로 비공개(Private) 저장소가 아니라면 모든 사용자들이 읽기 권한을 가지게 된다. 비공개..
모든 컨테이너는 이미지를 기반으로 생성되므로 이미지를 다루는 방법은 도커 관리에서 빼놓을 수 없는 부분이다. 이미지의 이름을 구성하는 저장소, 이미지 이름, 태그를 잘 관리하는 것뿐만 아니라 이미지가 어떻게 생성되고 삭제되는지, 이미지 구조는 어떻게 돼 있는지 등을 아는 것 또한 중요하다. 도커 허브(Docker Hub) 도커 허브(Docker Hub)는 도커가 공식적으로 제공하고 있는 이미지 저장소로서, 도커 계정을 가지고 있다면 누구든지 이미지를 올리고 내려받을 수 있기 때문에 다른 사람들과 이미지를 쉽게 공유할 수 있다. 대부분의 이미지는 도커 허브에서 공식적으로 제공하거나 다른 사람들이 도커 허브에 이미 올려놓은 경우가 대부분이라서 애플리케이션 이미지를 직접 만들지 않아도 손쉽게 사용할 수 있는데..
컨테이너 자원 할당 제한 컨테이너를 생성하는 run, create 명령어에서 컨테이너의 자원 할당량을 조정하도록 옵션을 입력할 수 있다. 옵션을 설정하지 않으면 자원을 무제한으로 사용하기 때문에 호스트에 무리가 가게 되면 다른 컨테이너까지 영향이 미칠 수 있기 때문에 설정하는 것이 좋다. docker inspect 명령어를 사용해 현재 컨테이너의 설정된 자원 제한을 확인할 수 있다. $ docker inspect mysql ... "HostConfig": { ... "KernelMemory": 0, "KernelMemoryTCP": 0, "MemoryReservation": 0, "MemorySwap": 0, "MemorySwappiness": null, "OomKillDisable": null, "Pi..
컨테이너 내부에서 어던 일이 일어나는지 아는 것은 디버깅뿐만 아니라 운영 측면에서도 중요하다. 도커는 컨테이너의 표준 출력(StdOut)과 에러(StdErr) 로그를 별도의 메타데이터 파일로 저장하며 이를 확인하는 명령어를 제공한다. docker logs 명령어를 사용해 컨테이너의 표준 출력을 확인할 수 있다. $ docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORD=1234 \ mysql:5.7 $ docker logs mysql 2022-12-27 10:19:09+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.40-1.el7 started. 2022-12-27 10:19:10+00:00 [N..
도커 클라이언트 관련 명령어 ▶ 도커 버전 출력 $ docker version ▶ 도커 상세 정보 출럭 $ docker info ▶ 도커 허브 로그인 $ docker login -u ▶ 도커 허브 로그아웃 $ docker logout 이미지 관련 명령어 ▶ 컨테이너 이미지 생성 $ docker commit : 옵션 설명 -a "" 작성자 설정 -m "" 메세지 설정 ▶ 이미지 목록 출력 $ docker search 옵션 설명 --automated=false Automated Build만 출력 --no-trunc=false 모든 결과 출력 -s[--stars=n] star 수가 n개 이상인 결과 출력 ▶ 이미지 다운받기 $ docker pull ▶ 이미지 목록 출력 $ docker image ls $ ..
beekei
'docker' 태그의 글 목록