日: 2018年7月23日

  • denied: requested access to the resource is denied

    denied: requested access to the resource is denied

    docker hubのようなレジストリサービスを使った際、

    # docker push [remote repository]:[tag] 
    The push refers to a repository [xxxxx ]
    0b42c4d54897: Preparing 
    9cc8bf7662b6: Preparing 
    0b9ee6a3e512: Preparing 
    129b697f70e9: Preparing 
    denied: requested access to the resource is denied
    

    というエラーが表示された。

    これは単純な問題で、リポジトリやタグの指定が誤った際に表示される

     

    # レジストリサービスにログインする
    docker login
    
    # commitする(コンテナからimage化)
    docker commit [image名] [remote repository]:[tag]
    例: docker commit container git.example.com/infra/admin:20180717
    
    # リモートリポジトリへpush
    docker push [remote repository]:[tag]
    例: docker push git.example.com/infra/admin:20180717
    

     

    よくある間違いがプロジェクト名の誤り。docker imagesコマンドで名前が合っているか確認し、修正することでエラーは解消される。

  • docker loginは鍵認証できなそう

    docker loginは鍵認証できなそう

    はじめに

    ログインするには大きく二つ

    • パスワード認証
    • 鍵認証

    が定番だと思うが、残念ながらdocker hubなどレジストリへ登録するのに鍵認証は使えなさそうだ

    公式ドキュメント

    https://docs.docker.com/engine/reference/commandline/login/

    Name, shorthand Description
    --password , -p Password
    --password-stdin Take the password from stdin
    --username , -u Username

    パスワードを聞かれないようにするためには

    公式ドキュメントにあるように、テキストファイルに書き、標準出力で読み込ませるしかなさそう。

    $ cat ~/my_password.txt | docker login --username foo --password-stdin

    平文でパスワードを書くのは抵抗あるが、パーミッションを絞って、うまく調整するしかなさそう。痒い所に手が届かないのが残念。