서버

로컬호스트에서 혼자 사용시에는 인증서가 필요없으나
다른 팀에서 접근시 필요함

$ mkdir -p certs

$ openssl req \
  -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
  -x509 -days 365 -out certs/domain.crt

TLS기반으로 도커레지스트리 서버를 작동

docker run -d \
 -p 5000:5000 \
 --restart=always \
 --name registry \
 -v /docker-registry:/var/lib/registry \
 -v "$(pwd)"/certs:/certs  \
 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
 -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry

볼륨이 2개 적었는데

  • 하나는 도커이미지 볼륨
  • 나머지는 cert파일이 있는 장소

개발로컬PC

curl https://[ip]/v2/_catalog

로 api호출시 에러가 나는데 cert파일을 로컬 pc에 복사하면 된다.
파일을 /usr/local/share/ca-certificates/ 에복사하고

sudo update-ca-certificates

하면 되겠다.

이미지 push

PC에 있는 이미지를 태그를 작성하고
push하면 되겠다.
사전에 해당 서버는 insecure-registries에 적어주면된다.

리눅스(우분트)

/etc/docker/daemon.json 에 작성한다.
파일이 없을 경우 작성하면 되겠다.
damon.json

{
  "insecure-registries" : ["IP:5000"]
}

윈도우

C:\ProgramData\docker\config\daemon.json 을 작성하거나
도커툴의 Daemon > Insecure registries에 항목을 추가한다.

push

docker tag dashbord-server <서버IP:5000>/dashboard-server
docker push <서버IP:5000>/dashboard-server

참고

https://docs.docker.com/registry/insecure/
https://docs.docker.com/registry/spec/api