GNU/Linux >> Belajar Linux >  >> Linux

login buruh pelabuhan otomatis dalam skrip bash

Untuk menjalankan perintah docker login secara non-interaktif, Anda dapat menyetel flag --password-stdin untuk memberikan kata sandi melalui STDIN. Menggunakan STDIN mencegah kata sandi berakhir di riwayat shell, atau file log.

$ echo $DOCKER_PASS | docker login -u$DOCKER_USER --password-stdin $DOCKER_HOST

Saat Anda masuk ke registri pribadi Anda, docker otomatis membuat file $HOME/.docker/config.json File tersebut memiliki info Kredensial, sehingga Anda dapat menyimpan file dan menyalin ke host mana pun saat Anda ingin masuk ke registri.

Isi filenya seperti ini:

{
     "auths": {
                   "example.com": {
                                    "auth": "xxxxxxxxxxxxxxxxxxxxxxx"
                    }
            }
 }

Pengaya Jika Anda ingin masuk ke registri multi buruh pelabuhan di satu server, cukup tambahkan info autentikasi lainnya. Seperti ini:

{
     "auths": {
                   "example.com": {
                                    "auth": "xxxxxxxxxxxxxxxxxxxxxxx"
                    },
                    "example1.com":{
                                    "auth": "xxxxxxxxxxxxxxxxxxxxxxx"
                    }
            }
 }

Sekarang Anda dapat mendorong dan menarik gambar dari example.com dan example1.com.


Docker 18 dan seterusnya

Sekarang ada cara yang didokumentasikan secara resmi untuk melakukan ini:

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

Docker 1.11 hingga Docker 17

Anda dapat meneruskan semua argumen pada baris perintah:

docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST

Jika Anda tidak menentukan DOCKER_HOST , Anda akan mendapatkan repo Docker utama. Jika Anda mengabaikan salah satu argumen, Anda akan dimintai argumen tersebut.

Lebih lama dari 1,11

Jalur yang sama seperti di atas, kecuali Anda perlu juga berikan --email bendera. Konten ini sebenarnya tidak dicentang, jadi semuanya baik-baik saja:

docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST --email [email protected]

Untuk setiap orang yang lewat secara acak yang mungkin tersandung ke dalam ini mencari cara untuk menggunakan ini terhadap registri kontainer lingkungan Openshift (Docker), Anda dapat menggunakan yang berikut ini untuk memberikan URI registri bersama dengan kredensial untuk masuk ke dalamnya menggunakan token Openshift.

$ echo "$(oc whoami -t)" | docker login -u $USER --password-stdin \
    $(oc get route docker-registry -n default --no-headers | awk '{print $2}')
Login Succeeded

Hal di atas melakukan 3 hal:

  • Token pass diambil dari Openshift oc whoami -t
  • Menentukan URI registri Openshift

    $(oc get route docker-registry -n default --no-headers | awk '{print $2}'`)
    
  • Masuk ke registri menggunakan $USER + token dari atas


Linux
  1. Bisakah Skrip Bash Dihubungkan ke File?

  2. Bagaimana Cara Men-debug Skrip Bash?

  3. Typeset -a Apakah Memberikan Kesalahan Dalam Script?

  1. Script Bash Untuk Mengisi Template?

  2. Buka Vim dari dalam skrip Bash Shell

  3. nama dasar dengan spasi dalam skrip bash?

  1. Dapatkan Jalur Lengkap Dari Dalam Skrip Bash?

  2. Gunakan variabel Bash dalam skrip sbatch SLURM

  3. Jalankan skrip bash setelah login