LoginSignup
10
8

More than 5 years have passed since last update.

Azure Container Registryを使ってみる

Last updated at Posted at 2017-03-14

実施内容

Azure Container Registry(プレビュー版)を作成し、プライベートなコンテナレジストリとして使用する。

Azure Container Registryの詳細は下記を参照。

Azure Container Registry

注意事項

記事の投稿時(2017年3月14日)、Azure Container Registryはプレビュー版となっております。料金や機能等は正式版提供時に変更となっている可能性があります。
最新情報はAzureのサイトをご確認お願いいたします。
Microsoft Azure

動機

何故、プライベートコンテナレジストリが欲しかったか

契約上、限られた人間のみ使えるアプリケーションをコンテナ化してチームで共有したかったのです。

何故、Azureなのか

AWSもストレージ料金とネットワーク使用量のみのため、特に料金に差はありませんでした。既に契約をしているAzureにしました。
後、サイトの日本語が一番解り易かったです。

手順

まずはAzureのMarketplaceで"Container Registry"で検索すると一番上に出てきます。
WS000000_1.JPG
選択すると説明文が出てくるので、それを読んで新規作成。
その後に、レジストリ名やサブスクリプション、リソースグループを入れる欄が出てくるので記入します。WS000002.JPG
Adminユーザは初期段階では作らないことにしました。

作成ボタンを押すとデプロイが開始されるので待ちます。
今回の場合は2分も経たずに出来上がりました。

一時的にAdminユーザを作成し、レジストリにイメージを登録してみる。

AzureのコンソールでAdmin userをEnableにすると、dockerからログインが出来るようになります。
ユーザ名はレジストリの名前になります。パスワードは自動で設定されます。
WS000003.JPG

ログインしてみます。ログイン先は”レジストリ名-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出来たことを確認できます。
WS000004.JPG

まとめと今後

かなり簡単にレジストリが作成できますが、利用するユーザの制限はできませんでした。
リポジトリのURIが解ると誰でも利用できてしまうので、本来やりたかったことが出来ません
正式版提供の際は是非とも改善して、AWSとの差別化を図って欲しいところです。

今後は別のサービスを考えたいと思います。
ごめんなさい嘘でした。Adminユーザ以外使えませんでした。
こまかいユーザ毎のアクセス制限はできませんが、ユーザ/パスワードを知る人しか利用出来なくなります。正式版の際は細かいユーザ制御も出来るようになると素晴らしくなると思います。

一か月ほど使ってみて、課金具合がどんなものか見ていきます。

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