본문 바로가기

DevOps/Docker

리눅스에 도커 사설 저장소(private registry) 만들고 사용하기

일단,로컬에서만 사용할거라 http를 사용할거고,그래서 ssl을 붙이지않고 사용할거다

만약 프로덕션레벨에서 쓸거라면 이렇게 하면안된다

 

ssl을 안붙이면 그냥

version: '3'

services:
  registry:
    image: registry:2
    ports:
      - '5000:5000'
    volumes:
      - ./data:/var/lib/registry
    restart: always

registry_compose.yaml을 만들고 docker-compose -f registry_compose.yaml up -d로 실행시키면 거의 다끝났다

 

그리고 pc에서 http://서버ip:5000/v2/_catalog 로 접근이 가능하면 된다,저 url은 현재 저장소에 들어있는 이미지들을 표시해준다

그리고

# 이미지 태그

docker tag myimage:latest 서버ip:5000/myimage:latest

# 이미지 푸시

docker push 서버ip:5000/myimage:latest

# 이미지 풀

docker pull 서버ip:5000/myimage:latest

이렇게 사용하면되는데,인텔리제이에서 하려면

 

설정에 가서 저위치가서 저장소를 설정해주고,자동으로 연결테스트를 하는데 연결성공이 뜨면된다

그리고 인텔리제이 밑에

서비스의 도커-빌드한 이미지를 선택하고,오른쪽에 이미지푸시를 누르면

이게 나오고,확인을 누르면 푸시가 된다

만약 네임스페이스가 비어있다면,서버ip:포트 를 직접 입력해야한다

무한로딩걸리면 아마 저게 비어있을수있음

 

근데 이때  http server gave http response to https client 이런 에러가 날텐데,이러면 클라이언트의 도커데스크탑 설정에 들어가서,docker engine에 나오는 json에

"insecure-registries": [
    "서버ip:5000"
  ]

를 추가해주면된다

이렇게 추가해주고 밑에 재시작을 누르면 된다

 

그리고 이미지를 푸시하고 http://서버ip:5000/v2/_catalog 에 접근해주면 푸시한 이미지가 뜨게된다

이 이미지를 사용할땐

version: '3'
services:
  whyprice:
    image: localhost:5000/whyprice:0.9
    ports:
      - "8080:8080"

이렇게 이미지에 localhost:5000/ 를 붙여서 사용하면된다

저걸 안붙이면 도커허브에 가서 찾으니까 조심