정창훈(@seapy)
레지스트리 REGISTRY
다른 사람들이 만든 이미지 설정없이 바로 사용 가능
무료인 경우
- 1 사설 저장소
- 무한대의 공개 저장소
유료 정책도 있음
# Dockerfile
FROM busybox
CMD echo 'Hello, Docker!'
# 위의 Dockerfile을 빌드
$ docker build -t seapy/echo .
# 도커 실행 확인
$ docker run --rm seapy/echo
Hello, Docker!
# 이미지 삭제
$ docker rmi sepay/echo
$ docker run --rm seapy/echo
Unable to find image 'seapy/echo' locally
Pulling repository seapy/echo
2014/11/01 00:32:49 Error: image seapy/echo not found
# 이미지 빌드 및 푸쉬
$ docker build -t seapy/echo .
$ docker push seapy/echo
$ docker rmi sepay/echo
$ docker run --rm seapy/echo
Hello, Docker!
# 호스팅 서비스에 로그인
$ docker login tutum.co
Username: seapy
Password:
Email: user@email.com
Login Succeeded
# 이미 빌드된 이미지에 새로운 이름을 추가
$ docker tag seapy/echo tutum.co/seapy/echo
# 호스팅 레지스트리에 이미지 push
$ docker push tutum.co/seapy/echo
https://github.com/docker/docker-registry
$ docker run -d \
--name docker-registry \
-p 5000:5000 \
registry
# 실행 여부 확인(boot2docker의 예. 우분투라면 ip를 0.0.0.0이나 서버의 IP로 변경)
$ curl "http://192.168.59.103:5000"
"docker-registry server (dev) (v0.8.1)"%
# 이미지에 새로운 이름 부여
$ docker tag seapy/echo 192.168.59.103:5000/echo
# 사설 레지스트리로 push
$ docker push 192.168.59.103:5000/echo
# 로컬 이미지 삭제 후 실행
$ docker rmi 192.168.59.103:5000/echo
$ docker run --rm 192.168.59.103:5000/echo
Unable to find image '192.168.59.103:5000/echo' locally
Pulling repository 192.168.59.103:5000/echo
88816139d249: Download complete
511136ea3c5a: Download complete
df7546f9f060: Download complete
e433a6c5b276: Download complete
e72ac664f4f0: Download complete
Status: Image is up to date for 192.168.59.103:5000/echo:latest
Hello, Docker!
로컬에서 레지스트리 실행
$ docker run -d \
--name registry-ui \
-p 8080:8080 \
atcol/docker-registry-ui
레지스트리 UI
https://github.com/atc-/docker-registry-web
$ docker run -d \
--name docker-registry \
-p 5000:5000 \
-v /docker/registry-conf:/registry-conf \
-e DOCKER_REGISTRY_CONFIG=/registry-conf/config.yml \
-e SETTINGS_FLAVOR=prod \
registry
prod:
loglevel: warn
standalone: true
storage: s3
search_backend: sqlalchemy
s3_bucket: your-bucket
boto_bucket: your-bucket
storage_path: /prod
s3_access_key: S3_ACCESS_KEY
s3_secret_key: S3_SECRET_KEY
s3_encrypt: true
s3_secure: true
환경설정 파일(/docker/registry-conf/config.yml)
실행
https://github.com/docker/docker-registry/issues/612
python이 아닌 go 언어로 개발
이미지 포맷 변경
API 변경