private docker registry を使ってみる


はじめに

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