본문 바로가기
운영체제/리눅스

(Docker) Private Registry 설정하기

by Cloud_Park 2020. 2. 18.

2020/02/05 - [운영체제/리눅스] - Docker CE버전 설치하기 우분투

2020/02/17 - [운영체제/리눅스] - (docker) docker registry 등록하기

2020/02/17 - [운영체제/리눅스] - (docker) Docker registry 활용

 

기본적으로 도커 허브엔 <계정아이디>/registry:latest 처럼 tag명에 내아이디가 들어가는 형태지만

Private Registry는  <registry_URL:PORT>/Path/Image_name으로 들어간다. 이를 위해  private registry를 만들어보고  push, pull을해보자. 

 

1.  이미지 가져오기

docker pull hello-world   //실험용 이미지

docker pull registry      //registry 이미지

 

 

2. registry 실행하기 

docker run --name privateRegistry -d -p 5000:5000 registry 

docker run --name [이름 지정]   -d -p 5000:5000 [이미지이름]

 

3. tag 바꾸기

docker tag hello-world  localhost:5000/hello-world

 

 

중간 확인

docker push  222.122.51.37:5000/hello-world

결과

The push refers to a repository [xxx.xxx.xxx.xxx:xxxx/xxxx]
Get xxx.xxx.xxx.xxx:xxxx/xxxx/v1/_ping: http: server gave HTTP response to HTTPS client

 

4.

** daemon.json 생성/설정하기 

/etc/docker/에

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

 

 

5. 도커 재기동

 

systemctl restart docker

 

 

6. 포트확인하기

netstat -anpt |grep 5000

 

 

 

7. 도커 이미지 확인 및 registry  실행시키기

docker images

docker run --name privateRegistry -d -p 5000:5000 registry

 

8.  privateRegistry에 push하기

docker push 222.122.51.37:5000/hello-world

docker push [IP]:5000/[IMAGE]

 

9. 해당 privateRegistry에 push 되었는지 확인 

 crul -X GET http://222.122.51.37:5000/v2/_catalog

 crul -X GET http://[IP]:5000/v2/_catalog

결과 : push된 이미지 출력

 

crul -X GET http://222.122.51.37:5000/v2/hello-world/tags/list

crul -X GET http://[IP]:5000/v2/[이미지이름]/tags/list

결과: 이미지 태그확인하기

 

 

그 왜  조회정보들

content digest 조회

$ curl -v --silent -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X GET http://<REGISTRY URL:포트>/v2/<REPOSITORY 이름>/manifests/<TAG 이름> 2>&1 | grep Docker-Content-Digest | awk '{print ($3)}'

 

manifest 삭제

$ curl -v --silent -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X DELETE http://<REGISTRY URL:포트>/v2/<REPOSITORY 이름>/manifests/<DIGEST 정보>

 

GC(Garbage Collection)

$ docker exec -it registry_dev registry garbage-collect /etc/docker/registry/config.yml