Azureのコンテナーレジストリ作成ーーdocker imageプッシュまで

##前書き
これからAzure Kubernetes Serviceでkubernetesを勉強します。ここに学習メモを残していきたいと思います。
今日はkubernetesに必要となるprivate docker registryを作成しました。その手順を共有します。

##レジストリ作成手順
1. Azureポータルにログインします。
2. 左側の「すべてのサービス」をクリックし、「コンテナー」カテゴリの「コンテナー レジストリ」をクリックします。
![2018-08-24_225922.png](https://qiita-image-store.s3.amazonaws.com/0/193995/a612b500-f071-7972-d20d-c1e38b0123dd.png)
3. 「追加」をクリックします。
![2018-08-24_230053.png](https://qiita-image-store.s3.amazonaws.com/0/193995/5259ee6b-e70b-bce6-6767-b8b56ff4292b.png)
4. コンテナーレジストリ情報を入力し、「作成」ボタンをクリックします。 
![2018-08-24_230452.png](https://qiita-image-store.s3.amazonaws.com/0/193995/f401a845-22b8-3ab5-b75b-f775f9850160.png)

|項目|説明|入力値|
|:-----------|------------:|:------------:|
|レジストリ名|Azure内一意な値が必要です。|**firstkube**|
|サブスクリプション|課金するサブスクリプションを選択します。|azurePass|
|リソースグループ|リソースのグルーピング単位を選択します|*新規* *firstkube*|
|場所|リージョンを選択します。|米国東部|
|管理者ユーザー|有効な場合、レジストリ名を Docker ログインのユーザー名として、管理者ユーザー アクセス キーをパスワードとして使用し、コンテナー レジストリにログインできます。|**有効にする**をします。|
|SKU|SKUにより[料金](https://azure.microsoft.com/ja-jp/pricing/details/container-registry/)が違います。|料金を控えるため、*basic*を選択します。| 
5.「展開が成功しました。」という通知が表示されましたら、作成が完了です。
![2018-08-24_230731.png](https://qiita-image-store.s3.amazonaws.com/0/193995/8cc4e2fb-617d-9760-97a9-de3cab493772.png)
6.続いて、作成されたレジストリの情報を確認します。上記通知の「リソースに移動」をクリックし、「コンテナー レジストリ」画面を開き、「アクセスキー」をクリックします。
![2018-08-24_231033.png](https://qiita-image-store.s3.amazonaws.com/0/193995/f55e5901-ca06-46af-eae5-ec9bec6cb558.png)
7.イメージをプッシュ時に、必要なアクセス情報が表示されます。次のアクセス情報をメモします。
・ログイン サーバー
・ユーザー名 
・password
![2018-08-24_231225.png](https://qiita-image-store.s3.amazonaws.com/0/193995/4810dd8e-a7e9-eabf-2258-36eebae0c195.png)

##Dockerからレジストリにログイン手順
```docker login {ログイン サーバー}```コマンドでDockerからレジストリにログインします。 

```bash
[user@localhost 09:22:08 ~]$sudo docker login firstkube.azurecr.io
Username: firstkube
Password:
Login Succeeded
[user@localhost 09:22:33 ~]$
```
「Login Succeeded」が表示されましたら、ログイン成功しました。

##Dockerイメージプッシュ手順 
  Dockerイメージをレジストリにプッシュするのは、タグ付けとプッシュ２ステップが必要です。
　今回はローカルに既存の「hello-world」イメージをプッシュします。  

1.Dockerイメージタグ付け  
```docker tag hello-world {ログイン サーバー}/{イメージ名}:{タグ}```コマンドでイメージにタグを付けます。
```docker images```コマンドで結果を確認します。

```bash
[user@localhost 10:40:22 ~]$sudo docker tag hello-world firstkube.azurecr.io/hello-world:0824
[user@localhost 10:40:31 ~]$sudo docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
hello-world                        latest              2cb0d9787c4d        6 weeks ago         1.85kB
firstkube.azurecr.io/hello-world   0824                2cb0d9787c4d        6 weeks ago         1.85kB
```  

2.イメージプッシュ 
 
```docker push {ログイン サーバー}/{イメージ名}:{タグ}```コマンドでイメージをプッシュします。

```bash
[user@localhost 10:41:06 ~]$sudo docker push firstkube.azurecr.io/hello-world:0824
The push refers to repository [firstkube.azurecr.io/hello-world]
ee83fc5847cb: Pushed
0824: digest: sha256:aca41a608e5eb015f1ec6755f490f3be26b48010b178e78c00eac21ffbe246f1 size: 524
[user@localhost 10:41:32 ~]$
```

3.プッシュ結果確認
「コンテナーレジストリ」画面の「リポジトリ」メニューから、「イメージ名」、「タグ名」の順にクリックすると、プッシュされたイメージの情報を確認できます。
![2018-08-24_235222.png](https://qiita-image-store.s3.amazonaws.com/0/193995/dcbf7264-ab5e-4d7c-6331-afdcbc1ccad9.png)
![2018-08-24_235333.png](https://qiita-image-store.s3.amazonaws.com/0/193995/e14f3011-7f58-eadb-b0dd-d4f90955d46c.png)

##最後に
今回はここで終了します。
次回はAzure Kubernetes Serviceでクラスターを作成します。