- 03-5820-1777平日10:00〜18:00
- お問い合わせ
認証付きDocker Registryを構築する①ではDocker Registryサーバの構築方法を書きました、今回はクライアントの設定と実際にDocker イメージの登録、取得をやってみたいと思います。(今回はWindows環境でやります)
クライアント環境
Windows10
Docker Desktop 4.3.2
Docker Engine v20.10.11
Dockerの環境が構築されていれば、後設定するのはTLSの設定だけです。
Windows版でのTLSのクライアント設定は以下の通りです。
1.DockerRegistryサーバの際に作成したDockerRegistry.crtファイルをクライアントにコピーする。
2.DockerRegistry.crtをダブルクリックし証明書のインストールを行う。
ダブルクリックすると上の画面が出てくるので証明書のインストールボタンを押下します。
証明書のインストールボタンを押下して今回は「現在のユーザ」を選択し次へボタンを押下します。
上の画面が出てくるので「証明書の種類に基づいて、自動的に証明書ストアを選択」を選択し次へボタン押下します。
上の画面が出てくるので完了を押下します。
上の画面が出てくれば正常にインポート完了です。
Docker Registryへのログイン
まずはDocker Registryへログインします。
Docker Auth構築の際にauth_config.ymlで定義したユーザ、パスワードでログインします。
users:
"admin":
password: "$2y$05$Hk8RjMLX9NxGDVLa9CFTEezeeGFuYTIi.V8HbJPu54Bl8GGwoag/." # pass
"user01":
password: "$2y$05$XBhMKmTlC33TUgLS8BCCEOTZM76JTBxegGdktKSGyCsgt2f9rlw3e" # 123
取り敢えずadminユーザでログインします。
docker login 192.168.10.107:5000
Login Succeededと出力されたらログイン成功です。
※Error response from daemon: Get "https://192.168.10.107:5000/v2/": unauthorized: authentication requiredと出力
されたらユーザIDかパスワードが間違っています。
イメージの登録、取得
ログインが成功したらDocker イメージを登録してみます。
今回は既にDockerHubにあるイメージの「Centos7」を取得しそれを登録したいと思います。
#Docker HubからCenos7イメージを取得
docker pull centos:centos7
#イメージが取得出来てるか確認、以下のようなイメージがあるはずです。
#centos centos7 eeb6ee3f44bd 4 months ago 204MB
docker images
#自前のDocker Registryに登録する為のタグ付けをする
#サーバがIP192.168.10.107、ポート5000なので、以下のような形式になります。centos7の部分は任意
docker tag centos:centos7 192.168.10.107:5000/centos7
#登録処理 成功すると以下の様な結果が出力されるはずです。
#The push refers to repository [192.168.10.107:5000/centos7]
#174f56854903: Pushed
#latest: digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f size: 529
docker push 192.168.10.107:5000/centos7
以上が登録処理になります。
では次に取得をしてみたいと思います。
#ローカルにあるdockerイメージを削除しておきます。
#eeb6ee3f44bd部分はイメージID指定
docker rmi -f eeb6ee3f44bd
#dockerイメージ取得
docker pull 192.168.10.107:5000/centos7
#dockerイメージの確認。以下のようなイメージがあるはずです。
#192.168.10.107:5000/centos7 latest eeb6ee3f44bd 4 months ago 204MB
docker images
#起動
docker run -it -d --name centos7 192.168.10.107:5000/centos7
#起動確認。以下のような出力があるはずです。
#52fb8ca2afb9 192.168.10.107:5000/centos7 "/bin/bash" 9 seconds ago Up 9 seconds centos7
docker ps
以上がイメージ取得処理になります。
権限の確認
権限管理が正常にされているかの確認もしておこうと思います。
二つのユーザにそれぞれ権限を与えています。
auth_config.ymlでadminには全権限、user01には取得(pull)権限のみ与えています。
それぞれ確認してみたいと思います。
acl:
- match: {account: "admin"}
actions: ["*"]
comment: "Admin has full access to everything."
- match: {account: "user01"}
actions: ["pull"]
comment: "User \"user01\" can pull stuff."
adminでの登録、取得は上記のイメージの登録、取得が正常に出来てれば問題ないですので、user01で確認して行きます。
まずは登録処理から
#adminのログイン情報を破棄
docker logout 192.168.10.107:5000
#ログイン
docker login 192.168.10.107:5000
Username:user01
Password:123
#イメージを登録してみる。adminerをdockerHubから取得し、登録処理をする。
docker pull adminer
#イメージの確認、以下のようなイメージがあるはずです。
#michalhosna/adminer latest 1db560323a77 11 months ago 21.6MB
docker images
#自前のDocker Registryに登録する為のタグ付けをする
docker tag michalhosna/adminer 192.168.10.107:5000/adminer
#登録処理 権限が与えられてないので以下の様な結果が出力されるはずです。
#denied: requested access to the resource is denied
docker push 192.168.10.107:5000/adminer
次は取得処理を試してみます。
上記で登録したcentos7の取得します。やり方はadminの時にやった方法と同じです。
#dockerイメージ取得
docker pull 192.168.10.107:5000/centos7
#dockerイメージの確認。以下のようなイメージがあるはずです。
#192.168.10.107:5000/centos7 latest eeb6ee3f44bd 4 months ago 204MB
docker images
#起動
docker run -it -d --name centos7 192.168.10.107:5000/centos7
#起動確認。以下のような出力があるはずです。
#52fb8ca2afb9 192.168.10.107:5000/centos7 "/bin/bash" 9 seconds ago Up 9 seconds centos7
docker ps
取得が成功すれば設定は正常に出来ています。
以上、プライベートのDocker Registryの作成方法を紹介しました。
参考になれば幸いです。