Docker 이미지는 보통 Docker hub에서 받아오지만 Private 저장소 운영이 필요할 수 있다. 본 포스팅에서는 Docker private repository를 설치하고 web을 통해 관리해보겠다.

Docker Registry 설치

아래는 Docker Registry를 설치하는 명령어다. -d는 데몬으로 실행(벡그라운드)해달라는 의미이며, -v 는 내부환경에서 저장될 경로를 의미한다.  

docker run --name docker-rep -d \
  -v /data/docker/docker:/var/lib/registry/docker/registry/v2 \
  -p 5000:5000 --restart=unless-stopped registry

아래는 인터넷 설정때문에 해주는 것이라고 한다.

sudo vi /etc/docker/daemon.json

{ 
	"insecure-registries":["ducj3.iptime.org:5000"] 
}

위 명령어를 적용하기위해 docker를 다시 실행해보자.

systemctl restart docker

Docker web설치

Docker에 web 으로 접속하기 위해 아래 설정을 해보자.  

vi config.yaml

registry: 
  url: http://ducj3.iptime.org:5000/v2 
  name: ducj3.iptime.org:5000 
  readonly: false 
  auth: 
  enabled: false
docker run -it -d \
  -p 5001:8080 --name docker-web \
  --link docker-rep \
  -e REGISTRY_URL=http://ducj3.iptime.org:5000/v2 \
  -e REGISTRY_NAME=ducj3.iptime.org:5000 \
  --restart=unless-stopped \
  -v /data/docker/config.yaml:/conf/config.yml:ro \
  hyper/docker-registry-web

Docker 이미지 업로드

이미지 업로드는 tag를 입력하고 push 하여 등록할 수 있다.

docker pull ubuntu
docker tag ubuntu ducj3.iptime.org:5000/ubuntu
docker images
docker push ducj3.iptime.org:5000/ubuntu

Docker의 이미지는 아래와 같이 repositories 경로에서 지우는 것이 깔끔하고 편하다. 나는 volume을 등록했기 때문에 볼륨 경로에서 제거하여 사용한다.

docker exec -it docker-rep sh
cd /var/lib/registry/docker/registry/v2/repositories/