実施内容
Azure Container Registry(プレビュー版)を作成し、プライベートなコンテナレジストリとして使用する。
Azure Container Registryの詳細は下記を参照。
注意事項
記事の投稿時(2017年3月14日)、Azure Container Registryはプレビュー版となっております。料金や機能等は正式版提供時に変更となっている可能性があります。
最新情報はAzureのサイトをご確認お願いいたします。
Microsoft Azure
動機
何故、プライベートコンテナレジストリが欲しかったか
契約上、限られた人間のみ使えるアプリケーションをコンテナ化してチームで共有したかったのです。
何故、Azureなのか
AWSもストレージ料金とネットワーク使用量のみのため、特に料金に差はありませんでした。既に契約をしているAzureにしました。
後、サイトの日本語が一番解り易かったです。
手順
まずはAzureのMarketplaceで"Container Registry"で検索すると一番上に出てきます。
選択すると説明文が出てくるので、それを読んで新規作成。
その後に、レジストリ名やサブスクリプション、リソースグループを入れる欄が出てくるので記入します。
Adminユーザは初期段階では作らないことにしました。
作成ボタンを押すとデプロイが開始されるので待ちます。
今回の場合は2分も経たずに出来上がりました。
一時的にAdminユーザを作成し、レジストリにイメージを登録してみる。
AzureのコンソールでAdmin userをEnableにすると、dockerからログインが出来るようになります。
ユーザ名はレジストリの名前になります。パスワードは自動で設定されます。
ログインしてみます。ログイン先は*”レジストリ名-on.azurecr.io”*となります。
[user@host ~]$ sudo docker login registoryname-on.azurecr.io
Username: registoryuser
# 自動発行されたパスワードを入れる。
Password:
Login Succeeded
ログインできました。
ためしにコンテナイメージを作成してPUSHしてみます。
[user@host ~]$ sudo docker run -i -t centos /bin/bash
# ここからコンテナ
[root@d0ed30ad7354 /]# java- verion
# 省略
bash: java-: command not found
# JavaがないのでJavaを入れる。
[root@d0ed30ad7354 /]# yum install -y java
[root@d0ed30ad7354 /]# java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
[root@d0ed30ad7354 /]# exit
exit
# ここからホスト
[user@host ~]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d0ed30ad7354 centos "/bin/bash" 9 minutes ago Exited (0) About a minute ago admiring_nobel
[user@host ~]$ sudo docker commit d0ed30ad7354 centos-java1.8
sha256:
# Javaが入ったCentOSをPush
[user@host ~]$ sudo docker tag centos-java1.8 registoryuser-on.azurecr.io/centos-java1.8
[user@host ~]$ sudo docker push registoryuser-on.azurecr.io/centos-java1.8
The push refers to a repository [registoryuser-on.azurecr.io/centos-java1.8]
e709da995a8c: Pushed
34e7b85d83e4: Pushed
latest: digest: sha256:
91b25c808f3e size: 741
Azureのコンソールで確認すると、無事にレジストリにPush出来たことを確認できます。
まとめと今後
かなり簡単にレジストリが作成できますが、利用するユーザの制限はできませんでした。
リポジトリのURIが解ると誰でも利用できてしまうので、本来やりたかったことが出来ません。
正式版提供の際は是非とも改善して、AWSとの差別化を図って欲しいところです。
今後は別のサービスを考えたいと思います。
ごめんなさい嘘でした。Adminユーザ以外使えませんでした。
こまかいユーザ毎のアクセス制限はできませんが、ユーザ/パスワードを知る人しか利用出来なくなります。正式版の際は細かいユーザ制御も出来るようになると素晴らしくなると思います。
一か月ほど使ってみて、課金具合がどんなものか見ていきます。