파란하늘의 지식창고
article thumbnail
반응형

docker나 kubernetes에 nexus artifactory를 만들고 docker image를 push 하려고 하면 필수 조건이 SSL 설정이다.

하지만 간단하게 로컬 개발 공부를 하려는 경우 SSL 설정 없이 쓰고 싶은 경우가 있다.

이런 경우 docker insecure registries 설정을 하면 해당 주소에 대해서는 https가 아닌 http로 요청하게 된다.

Docker Desktop의 경우 insecure registries 설정

docker desktop을 사용하는 경우 settings -> Docker Engine 항목에서 configuration file을 설정할 수 있다.

아래와 같이 insecure registries를 추가하면 된다.

{
  //... 생략
  "insecure-registries" : ["nexus.bluesky.local:8083", "nexus-service:8083"]
}

해당 설정을 추가하고 docker desktop을 재시작한다.

Rancher Desktop의 경우 insecure registries 설정

rancher desktop의 경우 docker daemon.json 파일을 추가하면 된다.

wsl -d rancher-desktop -e vi /etc/docker/daemon.json
{  
   "insecure-registries": [  
       "nexus.bluesky.local:8083", "nexus-service:8083"  
   ]  
}

설정 확인

해당 설정이 제대로 반영되었는지는 docker info 명령으로 확인할 수 있다.

C:\Users\bluesky>docker info
//... 중간 생략

Server:
 Containers: 98
 //... 중간 생략
 Insecure Registries:
  nexus-service:8083
  nexus.bluesky.local:8083
  hubproxy.docker.internal:5000
  127.0.0.0/8
 Live Restore Enabled: false

이렇게 insecure registries로 설정된 주소에 대해서는 https가 아닌 http로 docker push를 할 수 있다.

 

(추가) Nexus Docker hosted repository 설정

http로 docker image push를 할 준비가 되었으면 image를 저장할 registry에서도 http를 허용하도록 설정을 하면 된다.

docker-hosted repository를 생성하고 아래와 같이 http port설정, V1 API 활성화를 체크해준다.

설정된 nexus의 8083 port http 요청으로 docker image를 push 받게 된다.

 

(추가) Jib docker image push 설정

java project를 jib을 사용하여 docker image로 빌드해서 push 하는 경우 jib:bulid 명령을 사용한다.

http로 요청하는 경우 아래처럼 설정을 한다.

mvn jib:build -B -U -Dimage=nexus.bluesky.local:8083/test/testimage -Djib.allowInsecureRegistries=true -DsendCredentialsOverHttp=true

jib 버전이 변경되면 설정이 조금씩 달라질 수 있기 때문에 문서를 확인해야 한다.

https://github.com/GoogleContainerTools/jib

반응형
profile

파란하늘의 지식창고

@Bluesky_

내용이 유익했다면 광고 배너를 클릭 해주세요