LoginSignup
7
7

More than 5 years have passed since last update.

認証付きのCoreOS Enterprise Registryを立てる

Last updated at Posted at 2015-03-10

CoreOS Enterprise RegistryはQuay.ioのインストール版。料金体系も若干違う。

Quay.ioの方がメンテコスト掛からなくて楽&サーバコストも含めて考えたときに安いんだけど、如何せん国内サーバからのDocker pullが遅すぎてストレスフルなデプロイになること請け合いなので、自前のサーバにCoreOS Enterprise Registryをインストールすることにした。
ドキュメントに書いてないことがあったりしたせいで、主にSSLの認証周りでハマって1日くらい無駄にしたので、備忘録も兼ねて共有。

事前準備

  • CoreOSがインストールされたサーバを用意する
  • CoreOS Enterprise Registryを事前に契約して認証情報(.dockercfg)を用意する
    • /home/core/.dockercfg/root/.dockercfg においておく
  • SSL証明書の用意

インストール

MySQLのインストール

基本的にはドキュメントに書いてある通り。以下の手順では実行スクリプトを/tmp/から移動させている。

docker pull mysql:5.7
curl --location https://raw.githubusercontent.com/coreos/docs/master/enterprise-registry/mysql-container/provision_mysql.sh -o ~/provision_mysql.sh -#
vim ~/provision_mysql.sh

provision_mysql.shの以下の箇所を任意に書き換え

MYSQL_USER="coreosuser"
MYSQL_DATABASE="enterpriseregistrydb"
MYSQL_CONTAINER_NAME="mysql"

MySQLを立ち上げる

chmod -c +x ~/provision_mysql.sh
sh ~/provision_mysql.sh

起動10秒後にパスワードが表示されるので控えておく。

ちなみに、MySQLコンテナを立ち上げ直すたびにデータが消えてしまっては困るので、 Data-only container pattern などを使ってデータを永続化しておくことを推奨。ここでは手順は紹介しないが、ここらへんが参考になります。

Data Volume と Data Volume Container

Docker でデータのポータビリティをあげ永続化しよう

Redisのインストール

sudo docker pull quay.io/quay/redis
sudo docker run -d -p 6379:6379 quay.io/quay/redis

CoreOS Enterprise Registryのインストール

ここも基本的にはドキュメント通り。

まずは設定やストレージを共有するためのディレクトリを作成。

mkdir ~/storage
mkdir ~/config

次にCoreOS Enterprise Registryを立ち上げる。上で作ったconfigとstorageのディレクトリを-vとして指定する。

sudo docker pull quay.io/coreos/registry
sudo docker run --restart=always -p 443:443 -p 80:80 --privileged=true -v /home/core/config:/conf/stack -v /home/core/storage:/datastorage -d quay.io/coreos/registry

これでひとまず立ち上がるので http://yourhost/setup にアクセスして、データベースやAdminユーザの作成などを一通り行う。

その後、 http://yourhost/superuserEnable SSL にチェックを入れて、認証鍵を登録。 https://yourhost/ で接続出来る状態にする。

認証情報の設定

CoreOSのサーバ側にcert, keyをそれぞれ転送し、 /etc/ssl/ 配下にそれぞれ移動する

sudo cp server-cert.pem /etc/ssl/certs/docker-registry
sudo cp server-key.pem /etc/ssl/private/docker-registry
sudo update-ca-certificates

build-workerのインストール

CoreOS Enterprise Repositoryは側の機能だけなので、Dockerfileのbuildなどはこのbuild-workerプロセスが受け持つ。

docker run --restart on-failure -e SERVER=wss://yourhost -v /var/run/docker.sock:/var/run/docker.sock -v /etc/ssl/certs:/etc/ssl/certs quay.io/coreos/registry-build-worker:latest
7
7
0

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
7
7