
Ingress Controller 이미지 가져오기
이 문서는 Docker Registry에서 NGINX Plus Ingress Controller 이미지를 가져오는 방법을 설명합니다.
이 문서에서는 NGINX Ingress Controller 구독 인증서 및 Key를 사용하여 Docker Registry에서 NGINX Plus Ingress Controller 이미지를 가져오는 방법을 설명합니다. NGINX Plus 구독 인증서 및 Key는 Docker Registry에서 작동하지 않습니다. 다음 대체 방법을 사용하여 이미지를 가져올 수도 있습니다.
- Docker Secret 구성에서 NGINX IC Plus JWT 토큰 사용
- GitHub Repository의 소스 코드와 NGINX Plus 구독 인증서 및 Key를 사용하여 Ingress Controller 이미지를 Build 합니다.
- NGINX OSS 기반 NGINX Ingress Controller의 경우 DockerHub에서 nginx/nginx-ingress 이미지를 가져올 수 있습니다.
목차
1. 전제 조건
2. Docker사용으로 이미지 가져오기 및 Private Registry로 Push
1. 전제 조건
이미지를 가져오기 전에 컴퓨터에 다음 소프트웨어가 설치되어 있는지 확인하십시오.
- Docker v18.09+
- NGINX Ingress Controller의 경우 NGINX Ingress Controller 구독이 있어야 합니다. NGINX STORE에서 NGINX Plus Ingress Controller(인스턴스당) 인증서(
nginx-repo.crt
)와 Key(nginx-repo.key
)를 다운로드하세요.
2. Docker사용으로 이미지 가져오기 및 Private Registry로 Push
1. 먼저 컨테이너 Registry에서 Certificate-Based 클라이언트-서버 인증을 사용하도록 Docker 환경을 구성합니다. Linux 기반 환경에서 그렇게 하려면 /etc/docker/certs.d
아래에 private-registry.nginx.com
디렉토리를 만들고 인증서 client.cert
를 만듭니다(nginx-repo.crt
사용 – 인증서는 반드시 .crt
가 아닌 .cert
접미사) 및 Key client.key
(nginx-repo.key
사용). 자세한 내용은 Docker 엔진 보안 문서를 참조하세요.
# mkdir /etc/docker/certs.d/private-registry.nginx.com
# cp nginx-repo.crt /etc/docker/certs.d/private-registry.nginx.com/client.cert
# cp nginx-repo.key /etc/docker/certs.d/private-registry.nginx.com/client.key
Note: 앞의 예는 운영 체제에 따라 다르며 설명을 위한 것입니다. OS에서 제공하는 번들 인증서 체인을 생성하려면 운영 체제 설명서를 참조해야 합니다. 예를 들어, Mac용 Docker Desktop 또는 Windows용 Docker Desktop에 대해 이를 구성하려면 Mac용 Docker 설명서 또는 Windows용 Docker 설명서에서 자세한 내용을 참조하십시오.
2. Docker를 사용하여 private-registry.nginx.com
에서 필요한 Imgae를 가져옵니다. 기술 사양 가이드에 나열된 사용 가능한 이미지에서 Imgae를 선택합니다. NGINX Plus Ingress Controller의 경우 private-registry.nginx.com/nginx-ic/nginx-plus-ingress
에서 가져옵니다.
$ docker pull private-registry.nginx.com/nginx-ic/nginx-plus-ingress:2.4.1
App Protect WAF가 포함된 NGINX Plus Ingress Controlle의 경우 private-registry.nginx.com/nginx-ic-nap/nginx-plus-ingress
에서 가져옵니다.
$ docker pull private-registry.nginx.com/nginx-ic-nap/nginx-plus-ingress:2.4.1
App Protect DoS가 포함된 NGINX Plus Ingress Controlle의 경우 private-registry.nginx.com/nginx-ic-dos/nginx-plus-ingress
에서 가져옵니다.
$ docker pull private-registry.nginx.com/nginx-ic-dos/nginx-plus-ingress:2.4.1
Repositorie에 사용 가능한 이미지 태그를 나열하려면 Docker Registry API를 사용할 수도 있습니다.
$ curl https://private-registry.nginx.com/v2/nginx-ic/nginx-plus-ingress/tags/list --key <path-to-client.key> --cert <path-to-client.cert> | jq
{
"name": "nginx-ic/nginx-plus-ingress",
"tags": [
"2.4.1-alpine",
"2.4.1-ubi",
"2.4.1"
]
}
$ curl https://private-registry.nginx.com/v2/nginx-ic-nap/nginx-plus-ingress/tags/list --key <path-to-client.key> --cert <path-to-client.cert> | jq
{
"name": "nginx-ic-nap/nginx-plus-ingress",
"tags": [
"2.4.1-ubi",
"2.4.1"
]
}
$ curl https://private-registry.nginx.com/v2/nginx-ic-dos/nginx-plus-ingress/tags/list --key <path-to-client.key> --cert <path-to-client.cert> | jq
{
"name": "nginx-ic-dos/nginx-plus-ingress",
"tags": [
"2.4.1-ubi",
"2.4.1"
]
}
3. 이미지에 태그를 지정하고 Private Registry에 Push합니다.
- 먼저
docker login <my-docker-registry>
명령을 실행하여 Registry에 로그인해야 합니다. - 아래 예제의
<my-docker-registry>
를 Private Docker Registry에 대한 올바른 경로로 바꿉니다.
$ docker tag private-registry.nginx.com/nginx-ic/nginx-plus-ingress:2.4.1 <my-docker-registry>/nginx-ic/nginx-plus-ingress:2.4.1
$ docker push <my-docker-registry>/nginx-ic/nginx-plus-ingress:2.4.1
또는 NGINX App Protect WAF 지원 이미지의 경우
$ docker tag private-registry.nginx.com/nginx-ic-nap/nginx-plus-ingress:2.4.1 <my-docker-registry>/nginx-ic-nap/nginx-plus-ingress:2.4.1
$ docker push <my-docker-registry>/nginx-ic-nap/nginx-plus-ingress:2.4.1
또는 NGINX App Protect DoS 지원 이미지의 경우
$ docker tag private-registry.nginx.com/nginx-ic-dos/nginx-plus-ingress:2.4.1 <my-docker-registry>/nginx-ic-dos/nginx-plus-ingress:2.4.1
$ docker push <my-docker-registry>/nginx-ic-dos/nginx-plus-ingress:2.4.1