ArtifactoryにDocker Registryを作成してイメージをpushしてみよう！

## やりたいこと

[ArtifactoryのLocal Repository](https://www.jfrog.com/confluence/display/RTF/Local+Repositories)では、Dockerのリポジトリサービスも提供されています。

* https://www.jfrog.com/confluence/display/RTF/Docker+Repositories

自前でDocker Registryを構築・運用するのもいいですがクラウドサービスとして利用するのもありですね＾＾

と、いうことで早速どんなものか利用してみました。

## 利用の流れ

### 1. Admin権限で、Localのリポジトリを追加する

Admin権限をもつユーザで、Artifactoryのサイトにログインします。

その後、左のメニューバーから、「Admin ＞ Repositories > Local」と画面遷移します。


![Screenshot from 2016-04-11 15-13-50.png](https://qiita-image-store.s3.amazonaws.com/0/49547/0563cb27-c04c-4482-8b9d-2246fa2b7990.png)


ここで、画面の右上にある「New」を押下します。
すると、いくつかの選択肢が出てくるので「Docker」を押下します。

![Screenshot from 2016-04-11 13-38-34.png](https://qiita-image-store.s3.amazonaws.com/0/49547/3af3aed8-9fc0-a4ae-cae5-1731c801397c.png)


### 2. Dockerのリポジトリを設定する

次に、Dockerのリポジトリ名称を決定します。

![Screenshot from 2016-04-11 15-12-36.png](https://qiita-image-store.s3.amazonaws.com/0/49547/80632b58-bd36-7f3a-ad05-28427eab6b96.png)

Reposiotry Keyの部分で「hogehoge」などのように、任意のKeyを設定します。

[view-dev]として作成しました。

Save & Finishを押下するとDNSのレコードが登録されます。

![Screenshot from 2016-04-11 15-14-25.png](https://qiita-image-store.s3.amazonaws.com/0/49547/9aecf8b3-80ee-3c79-b604-58dc40ed89a1.png)


### 3. pullとpushを試してみる

当然ですが、Dockerログインが必要になります。

Admin権限で操作をすることも可能ですし、新しくArtifactory上でユーザを作成して権限設定も可能です。

pullが終わったあとの操作イメージは下記のとおりです。（って何も通常のdocker hubとは変わらないのですが。。）


```bash
 docker pull triplew-view-dev.jfrog.io/hello-world
Using default tag: latest
latest: Pulling from hello-world
03f4658f8b78: Pull complete 
a3ed95caeb02: Pull complete 
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
Status: Downloaded newer image for triplew-view-dev.jfrog.io/hello-world:latest
wada@wada:~/work/dfree-view-dev$ 
wada@wada:~/work/dfree-view-dev$ docker images
REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
mysql                                   5.7                 e78ddcc15639        6 days ago          361.2 MB
wada@wada:~/work/dfree-view-dev$ docker tag e78ddcc15639 triplew-view-dev.jfrog.io/mysql:5.7
The push refers to a repository [triplew-view-dev.jfrog.io/mysql]
5f70bf18a086: Pushed 
ea5e7a7f5b95: Pushed 
c89cbac62257: Pushed 
11d445c7e1cc: Pushed 
27bb08dd6a34: Pushing [========>                                          ] 34.43 MB/202.9 MB
e5b947750611: Pushing [==================================================>] 3.584 kB
d8ee7cfe67ce: Pushing [==================================================>] 25.09 kB
a8b4e945292d: Pushing [>                                                  ] 342.9 kB/32.87 MB                                                          27bb08dd6a34: Pushing [=========>                                         ] 36.66 MB/202.9 MB
27bb08dd6a34: Pushed 
e5b947750611: Pushed 
d8ee7cfe67ce: Pushed 
a8b4e945292d: Pushed 
751c61771d90: Pushed 
f0ec4b12764a: Pushed 
c12ecfd4861d: Pushed 
5.7: digest: sha256:bae5ab8db8c9214e554cee8e5b53c62f9ab06516f58916f88fdae4336c7f4694 size: 3826
```

## 所感

* あまりないユースケースかもしれませんが、企業間でイメージ共有する際のサービスとして利用するのもありですね。
* オンプレでこの手のサービスを構築・運用するメリット・デメリットと、クラウドサービスを使うときのそれについては切り分けとディスカッションが必要そうです。
* バグがある場合は、対応はしてもらえなさそうね＾＾；
* k8sとかecsのregistryとしても使えると思うが念の為動作確認を今度してみよう

---

本日は以上となります。