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/