クレデンシャルをdocker login
スクリプト内のコマンド?
基本的にカスタムVMなどのセットアッププロセス全体を自動化するbashスクリプトを使用していますが、スクリプト内でdockerにログインして画像を取得する必要がある場合、次のエラーが表示されます。
ユーザー名:FATA [0000]デバイスの不適切なioctl
使用していたコマンドは次のとおりです。
( echo "xxx"; echo "yyy"; echo "zzz" ) | docker login docker.somesite.org
これは、既存の.dockercfg
ファイルとその方法、
どうもありがとう。
正式に文書化された これを行う方法があります:
cat ~/my_password.txt | docker login --username foo --password-stdin
コマンドラインですべての引数を渡すことができます:
docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_Host
DOCKER_Host
を指定しない場合、メインのDockerリポジトリが取得されます。引数を省略した場合、その引数の入力を求められます。
上記と同じパス。ただし、also--email
フラグも渡す必要があります。この内容は実際にはチェックされないため、何でも問題ありません。
docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_Host --email [email protected]
Docker loginコマンドを非対話的に実行するには、-password-stdinフラグを設定して、STDINを介してパスワードを提供します。 STDINを使用すると、パスワードがシェルの履歴またはログファイルに記録されなくなります。
$ echo $DOCKER_PASS | docker login -u$DOCKER_USER --password-stdin $DOCKER_Host
プライベートレジストリにログインすると、dockerはファイル$ HOME/.docker/config.jsonを自動作成します。このファイルには資格情報が含まれていたため、レジストリにログインするときにファイルを保存してホストにコピーできます。
このようなファイルの内容:
{
"auths": {
"example.com": {
"auth": "xxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
アドオン1つのサーバーでマルチドッカーレジストリにログインする場合は、次のように別の認証情報を追加します。
{
"auths": {
"example.com": {
"auth": "xxxxxxxxxxxxxxxxxxxxxxx"
},
"example1.com":{
"auth": "xxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
これで、example.comおよびexample1.comからイメージをプッシュおよびプルできます。
これに偶然出くわす可能性のあるランダムな通行人については、Openshift環境のコンテナーレジストリ(Docker)に対してこれを使用する方法を探すために、次を使用して、OpenShiftトークンを使用してログインするための資格情報と共にレジストリURIを提供できます。
$ echo "$(oc whoami -t)" | docker login -u $USER --password-stdin \
$(oc get route docker-registry -n default --no-headers | awk '{print $2}')
Login Succeeded
上記は3つのことを行います。
oc whoami -t
から取得したトークンを渡しますOpenshiftのレジストリURIを決定します
$(oc get route docker-registry -n default --no-headers | awk '{print $2}'`)
上記の$USER
+トークンを使用してレジストリにログインします