Docker Registry 구성과 관리
docker container registry
보안상 docker hub와 같이 인터넷에 공개되는 곳에 올릴 수 없는 경우에는 Private Registry를 구축한다.
docker registry는 docker image를 회사 서버에 개별적으로 구축 관리하는 서비스다.
docker hub에 공개되어 있는 공식 image인 registry를 사용한다.
대용량은 git이나 neuxs를 사용하고 적은 용량의 컨테이너 사용을 권장한다.
docker pull registry
docker run -d \
-v /root/registry_data:/var/lib/registry \
-p 5000:5000 \
--restart=always \
--name=local-registry \
registry
curl -X GET http://192.168.137.100:5000/v2/_catalog
> {"repositories":[]}docker image tag dbgurum/myweb:v1.0 192.168.137.100:5000/myweb:v1.0
docker images
> REPOSITORY TAG IMAGE ID CREATED SIZE
> howokace/nginx v1.0 e4720093a3c1 3 weeks ago 187MB
> howokace/nginx v1.1 e4720093a3c1 3 weeks ago 187MB
> nginx latest e4720093a3c1 3 weeks ago 187MB
> registry latest a8781fe3b7a2 6 weeks ago 25.4MB
> 192.168.137.100:5000/myweb v1.0 34d2c432bcb3 9 months ago 41.4MB
> dbgurum/myweb v1.0 34d2c432bcb3 9 months ago 41.4MB
docker push 192.168.137.100:5000/myweb:v1.0
> The push refers to repository [192.168.137.100:5000/myweb]
> Get "https://192.168.137.100:5000/v2/": http: server gave HTTP response to HTTPS clientdocker 데몬에 로컬 레지스트리를 등록하는 작업이 필요
# /etc/init.d/docker
DOCKER_OPTS=--insecure-registry 192.168.137.100:5000
# /etc/docker/daemon.json
{ "insecure-registries": ["192.168.137.100:5000"]}
systemctl restart dockerdocker push 192.168.137.100:5000/myweb:v1.0
> The push refers to repository [192.168.137.100:5000/myweb]
> f9f93473fc62: Pushed
> a74ae032b52a: Pushed
> 8d68b6b128f7: Pushed
> c8db7b4be633: Pushed
> 0fbe8c68abd3: Pushed
> 664eb87278f9: Pushed
> 30085473d084: Pushed
> d007f013021f: Pushed
> f1417ff83b31: Pushed
> v1.0: digest: sha256:13d3bf72f7d23e551e7ee8a2e576959f295089c9c0a97d4c4fb6903b1ef73392 size: 2198
curl -X GET http://192.168.137.100:5000/v2/myweb/tags/list
> {"name":"myweb","tags":["v1.0"]}Last updated