본문 바로가기

docker55

728x90
Harbor Registry 서비스를 Docker Compose 환경으로 구성 Harbor는 컨테이너 레지스트리로, 이미지를 저장하고 관리하는 데 사용됩니다. Harbor를 Docker Compose로 설정하는 간단한 예를 들어 설명하겠습니다.1. 필요 조건Docker와 Docker Compose가 설치되어 있어야 합니다.Harbor의 설치 파일을 다운로드해야 합니다. 이는 GitHub 릴리스 페이지에서 진행할 수 있습니다.2. 설치 파일 준비Harbor 설치 파일을 다운로드한 후, 압축을 풀고 설치 디렉토리로 이동합니다.wget https://github.com/goharbor/harbor/releases/download/v2.x.x/harbor-online-installer-v2.x.x.tgztar xvf harbor-online-installer-v2.x.x.tgzcd har.. 2024. 5. 31.
Nginx Proxy 통한 Apache 서버로 요청 시 클라이언트 IP 전달 Nginx를 리버스 프록시로 사용하여 Apache2 (HTTPD) 서버로 요청을 전달할 때, 기본적으로 Apache2 서버는 요청이 Nginx 서버에서 온 것으로 인식합니다. 즉, Apache2의 접근 로그에는 클라이언트의 실제 IP 대신 Nginx 서버의 IP 주소가 기록됩니다. 클라이언트의 실제 IP 주소를 기반으로 Apache2에서 접근 제어를 하려면, 클라이언트의 원래 IP 주소를 Nginx에서 Apache2로 전달하고, Apache2가 이를 인식하도록 설정해야 합니다.Nginx 설정 변경Nginx 설정 파일에서 Apache2로 요청을 전달할 때 클라이언트의 실제 IP 주소를 포함시켜야 합니다. 이를 위해 proxy_set_header 지시어를 사용하여 X-Forwarded-For 헤더에 클라이언.. 2024. 5. 4.
Docker Swarm Node 네트워크 장애 후 통신 문제 해결 방법 Docker Swarm에서 노드 간의 네트워크 단절 후 다시 연결되었을 때, 컨테이너 간 통신 문제가 발생하는 경우는 여러 가지 원인이 있을 수 있습니다. 주로 이름 해석(Name Resolution) 문제로 Could not resolve host 같은 오류가 발생합니다. Docker를 재시작하면 해결되는 경우가 많지만, 임시적인 네트워크 설정 문제일 가능성이 높습니다. Docker를 재시작하지 않고 문제를 해결하는 방법에는 몇 가지가 있습니다. 1. 서비스 재배포 Docker Swarm 서비스를 강제로 업데이트하여 네트워크 설정을 새로 고치는 것입니다. 이 방법은 서비스가 사용하는 네트워크 설정을 재설정하고, 이름 해석 문제를 해결할 수 있습니다. docker service update --force.. 2024. 3. 31.
Jenkins ZAP(Zed Attack Proxy) 플러그인 통한 취약점 점검 자동화 Jenkins에 ZAP(Zed Attack Proxy) 플러그인을 사용하여 코드가 푸시될 때마다 도커(Docker)로 서비스를 배포하고, ZAP을 통해 취약점 점검을 수행한 후 결과를 리포팅하는 프로세스는 CI/CD 파이프라인에 보안 테스트를 통합하는 효과적인 방법입니다. 이를 위해서는 Jenkins, Docker, ZAP을 함께 사용하는 방법을 이해해야 합니다. 아래는 이 과정을 구현하는 단계별 안내입니다. 준비 단계 Jenkins 설치: Jenkins 서버가 설치되어 있어야 하며, 필요한 경우 Jenkins를 설치합니다. Docker 설치: Docker가 설치되어 있어야 하며, Jenkins 서버에서 Docker 커맨드를 실행할 수 있어야 합니다. ZAP 설치: OWASP ZAP이 설치되어 있어야 합.. 2024. 3. 19.
컨테이너 기반환경 보호를 위한 컨테이너 탈출(container escape) 방지 컨테이너 기반의 애플리케이션을 보호하기 위해 컨테이너 탈출(container escape)을 방지하는 것은 중요합니다. 컨테이너 탈출이란 컨테이너가 호스트 머신의 자원에 무단으로 접근하거나 제어할 수 있게 되는 보안 취약점을 의미합니다. 이를 방지하기 위한 여러 가지 방법들이 있습니다. 1. 모든 CAP(능력) 제거하고 필요할 때만 추가 리눅스 커널은 특정 작업을 수행할 수 있는 능력(Capabilities)을 정의합니다. 기본적으로 컨테이너는 제한된 능력 세트를 가지고 시작되지만, 특정 작업을 수행하기 위해 추가적인 능력이 필요할 수 있습니다. 보안을 강화하기 위해서는 모든 능력을 제거하고 필요할 때만 최소한의 능력을 추가하는 것이 좋습니다. 2. Privileged Container 사용 금지 혹은 .. 2024. 3. 16.
728x90
728x90