はじめに
自分のイメージの公開、共有には 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することができます。