[Docker] registry 운영 : public, private

제이브로·2024년 2월 15일
0

Docker

목록 보기
17/48
post-thumbnail

1. Docker hub

이미지가 저장된 도커에서 운영하는 저장소이다.

  • Official images : 도커에서 직접 관리하는 이미지들
  • Verified publisher : 벤더가 제공해주는 컨테이너 이미지들
  • Sponsored OSS : 도커에서 지원하고 있는 오픈소스 프로젝트

2. private registry

registry 컨테이너를 이용해 private한 컨테이너 이미지 저장소 운영

$ sudo docker run -d -p 5000:5000 --restart always --name registry registry:2
  • registry 이미지가 없어 새로운 이미지인 registry:2를 다운받는다
    registry

3. Examples

  • ubuntu:18.04 : docker hub가 관리하는 repository
  • jbro321/ubuntu:18.04 : jbro321이 관리하는 repository
  • localhost:5000/ubuntu:18.04 : localhost:5000이 관리하는 repository
  • $ docker tag jbro321/webserver:v1 localhost:5000/webserver:v1
  • localhost:5000이 아닌경우 {ip}:{port} ex) 192.168.0.20:5000

4. 저장위치

컨테이너 저장 위치로 이동

$ cd /var/lib/docker/volumes/{Container ID}/_data/
$ cd docker/registry/v2/repositories/
$ ls로 확인시, {이미지명}이 보인다

4.1 Examples

$ cd /var/lib/docker/volumes/{Container ID}/_data/
$ cd /docker/registry/v2/repositories/
$ ls로 확인시, webserver가 보인다

5. 서버에서 registry로 push, pull

private registry에서 push 혹은 pull 방법

  • http로 접속하는 방법이다.
    - 추후에 http 접근 말고 https 접근 방법 구축해볼 예정

5.1 Error

pull 혹은 push를 하려고 할 경우, https로 설정되어 있지 않은 경우, 에러가 발생합니다.
따라서, docker daemon.json을 수정해줘야 합니다.

registry_error

  1. push 혹은 pull 하려는 서버에 접속
  2. daemon.json 파일 생성하여 ip설정
  • $ vim /etc/docker/daemon.json 설정
  • private repository가 저장된 IP 설정 ex) 222.111.222.111:7050
{
	"insecure-registries":["222.111.222.111:7050"]
}
  1. daemon.json 저장 후 docker 데몬 재시작
$ sudo systemctl restart docker

5.2 Examples

docker image push

docker image push localhost:5000/my-app:1.0

6. private registry 검색

private registry에서는 search 사용이 불가능하다.
따라서, 다른 방법으로 리스트를 가져옵니다.

# 전체 이미지 목록 가져오기
curl -X GET http://<registry-host>/v2/_catalog

# 특정 태그 목록 가져오기
curl -X GET http://<registry-host>/v2/<repository-name>/tags/list

6.1 Examples

# 전체 이미지 목록 가져오기
curl -X GET http://222.111.222.111:7050/v2/_catalog

# 특정 태그 목록 가져오기
curl -X GET http://222.111.222.111:7050/v2/nginx/tags/list

7. References

  1. docker hub registry
  2. dfnk5516
  3. kimjingo
profile
기록하지 않으면 기록되지 않는다.

0개의 댓글