16
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

認証つきprivate registryを簡単に立ててみる

Posted at

環境

  • MacOSX Yosemite
  • docker 1.9.1
  • docker-compose 1.5.2
  • docker-machine 0.5.2

概要

簡単にprivate registryを立てれる環境が欲しかったので、作ってみました。
リポジトリはこちらになります。

認証つきprivate registry

dockerはデフォルトだとHTTPSで通信を行うのですが、SSLの証明書を作成したりプロキシサーバを立てたりするのが面倒でした。
また、認証や権限周りの設定を一からやっていくのもめんどくさい……。

というわけで、こちらのimageを利用することに。
https://github.com/cesanta/docker_auth#installation-and-examples

docker_auth

概要はリポジトリのREADMEを読んでもらえれば雰囲気がわかるかと。
また、こちらの記事が非常にわかりやすかったです。
https://the.binbashtheory.com/creating-private-docker-registry-2-0-with-token-authentication-service/

リポジトリ

リポジトリの中身は、docker_authとprivate registryを docker-compose up で立ち上げられるようにしたものです。

クイックスタート

READMEを読んでもらえばわかると思いますが一応。

git clone

$ git clone https://github.com/yuemori/docker-registry-auth
$ cd docker-registry-auth

SSL証明書の作成

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.pem
$ mkdir ssl
$ mv server* ssl

auth_config.ymlの編集

こちらを参考に、設定を変更してください。

$ vi config/auth_config.yml

insecure-registryの設定

insecure-registry は指定したホストとHTTP通信でregistryと通信するためのオプションです。
以下はdocker-machineの例です(CentOSとUbuntuの場合はREADMEに書いてありますが未検証です)。

my-registry の部分は立ち上げたホストのアドレスを入れてください。
docker-machineを使っている場合は、docker-machine ip hogehoge でIPアドレスを調べましょう。

$ docker-machine ssh default "echo $'EXTRA_ARGS=\"--insecure-registry my-registry:5000\"' | sudo tee -a /var/lib/boot2docker/profile && sudo /etc/init.d/docker restart"

起動

$ docker-compose up

デーモンで起動する場合は -d をつけましょう。

ログイン

$ docker login my-registry:5000
Username:
Password:
Email:

ログインが成功すると、 $HOME/.docker/config.json に認証情報が保存されます。

push

とりあえず、公式のruby imageをpullしてpushする例。

$ docker pull ruby:2.2.3
$ docker tag ruby:2.2.3 my-registry:5000/ruby:2.2.3
$ docker push my-registry:5000/ruby:2.2.3

search

$ docker search my-registry:5000/ruby
NAME           DESCRIPTION   STARS     OFFICIAL   AUTOMATED
library/ruby                 0

pull

$ docker pull my-registry:5000/ruby:2.2.3

private registryのバージョンについて

private registryは現在v1とv2があります。
推奨はv2ですが、v2は docker search をサポートしていないのがネックだったりします。
リポジトリの docker-compose.yml にはlatest(v1)を指定してあるので、お好みで変えてください。

まとめ

globalなところにprivate registryを置く場合でも、認証があれば安心ですね。
docker_authを使えば権限も細かく設定できるので、開発の際などに活用できそうです。

一方で、認証の遅さなどが気になる場合はやはりnginxなどをフロントに立てた方が良いかもしれません。

16
22
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?