Edited at

private docker registry を使ってみる

More than 3 years have passed since last update.


はじめに

自分のイメージの公開、共有には Docker Hub があるため、困りませんね。ただ、社内で開発しているとパブリックにはできませんが、共有したいイメージも出てきます。そんなときは private docker registry の出番です。


環境


  • OS: Ubuntu14.04

  • docker version: 1.4.1


前準備

private docker registry はコンテナですので、データの永続性が保証されません。保証するためには、ホストのディレクトリにマウントする必要があります。

$ mkdir registry

また、デフォルトの private registry はセキュア設定を行っていますので、証明書を用意する必要がありますが、ここでは証明書なしでの利用を想定しております。その場合は、docker deamonのオプションを変更する必要があります。


/etc/default/docker

DOCKER_OPTS="--insecure-registry [DOCKER_REGISTRY]:5000"


$ sudo service docker restart


registryコンテナ起動

$ sudo docker run -d -p 5000:5000 \

-v [PATH]/registry:/tmp/registry \
registry

※[PATH]は適宜修正して下さい。


簡単な使い方


テストイメージの作成


Dockerfile

FROM ubuntu:14.04

MAINTAINER koide

CMD ["/bin/bash", "-c", "tail -f /dev/null"]


$ sudo docker build -t [DOCKER_REGISTRY]:5000/test .

※[DOCKER_REGISTRY]は適宜修正して下さい。


テストイメージのpush

$ sudo docker push [DOCKER_REGISTRY]:5000/test


テストイメージのpull

$ sudo docker pull [DOCKER_REGISTRY]:5000/test


Docker Registry API


Get Status

curl [DOCKER_REGISTRY]:5000/v1/_ping | jq '.'


おわりに

基本的にはtagを [DOCKER_REGISTRY]:5000/hoge/fuga などしてやれば、private registry にpushすることができます。