clairvyの日記

思ったこと,調べたことを書きます

docker private registry を立ててみた

内容

いちいち build するのが面倒になったから,private registry を立てることを検討してみた.
とりあえず,ローカル(MacOSX + boot2docker)に立ててみる.

Mac$ docker run -p 5000:5000 registry

Mac$ docker ps -a
CONTAINER ID        IMAGE                                            COMMAND                CREATED             STATUS                   PORTS                                                                                    NAMES
a7238561b9e2        registry:latest                                  /bin/sh -c 'exec doc   22 hours ago        Up 29 minutes            0.0.0.0:5000->5000/tcp                                                                   silly_bell

これだけで起動する.

失敗

Mac で boot2docker を使っているので,

Mac 側
Mac$ sudo vi /etc/hosts
192.168.59.103 docker-reg.private.local

Mac$ docker push docker-reg.private.local
2014/08/08 08:34:12 Error: Invalid Registry endpoint: Get http://docker-reg.private.local:5000/v1/_ping: dial tcp: lookup docker-
reg.private.local: no such host

としてみたら,push できなかった.

成功

boot2docker 側
boot2docker$ sudo vi /etc/hosts
127.0.0.1 docker-reg.private.local
boot2docker$ docker push docker-reg.private.local:5000/sample-app
The push refers to a repository [docker-reg.private.local:5000/sample-app] (len: 1)
Sending image list
Pushing repository docker-reg.private.local:5000/sample-app (1 tags)
(中略)
Pushing tag for rev [a1eb481825d3] on {http://docker-reg.private.local:5000/v1/repositories/sample-app/tags/latest}

で設定したらできたみたい.
そりゃそうか.docker が動いてるのは boot2docker 側だから,
そっちから引けないと駄目か.

ということは,最初は localhost にしたら簡単だったかも.
あーでも,そうすると,Mac 側から見えないか.両方設定するのもアリかもしれない.

次に

もうちょっとストレージの永続化とかを考えた方がいいかもしれない.