Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Mengonfigurasi instans penampung Amazon ECS untuk gambar Docker pribadi

Mode fokus
Mengonfigurasi instans penampung Amazon ECS untuk gambar Docker pribadi - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Agen kontainer Amazon ECS dapat mengautentikasi dengan pendaftar pribadi, menggunakan otentikasi dasar. Bila Anda mengaktifkan autentikasi registri privat, Anda dapat menggunakan citra Docker privat dalam ketentuan tugas Anda. Fitur ini hanya didukung oleh tugas yang menggunakan tipe peluncuran EC2 .

Metode lain untuk mengaktifkan otentikasi registri pribadi digunakan AWS Secrets Manager untuk menyimpan kredenal registri pribadi Anda dengan aman dan kemudian mereferensikannya dalam definisi kontainer Anda. Hal ini mengizinkan tugas Anda untuk menggunakan citra dari repositori privat. Metode ini mendukung tugas menggunakan jenis peluncuran EC2 atau Fargate. Untuk informasi selengkapnya, lihat Menggunakan gambar AWS non-kontainer di Amazon ECS.

Agen kontainer Amazon ECS mencari dua variabel lingkungan saat diluncurkan:

  • ECS_ENGINE_AUTH_TYPE, yang menentukan tipe data autentikasi yang sedang dikirim.

  • ECS_ENGINE_AUTH_DATA, yang berisi kredensial autentikasi aktual.

Varian Linux dari AMI Amazon ECS yang dioptimalkan memindai /etc/ecs/ecs.config file untuk variabel-variabel ini ketika instance container diluncurkan, dan setiap kali layanan dimulai (dengan perintah). sudo start ecs AMIs yang tidak dioptimalkan Amazon ECS harus menyimpan variabel lingkungan ini dalam file dan meneruskannya dengan --env-file path_to_env_file opsi ke docker run perintah yang memulai agen penampung.

penting

Kami tidak menyarankan Anda menyuntikkan variabel lingkungan otentikasi ini saat peluncuran instance dengan data EC2 pengguna Amazon atau meneruskannya dengan --env opsi ke perintah. docker run Metode ini tidak sesuai untuk data sensitif, seperti kredensial autentikasi. Untuk informasi tentang menambahkan kredensial autentikasi secara aman ke instans kontainer Anda, lihat Menyimpan konfigurasi instans penampung Amazon ECS di Amazon S3.

Format autentikasi

Ada dua format yang tersedia untuk autentikasi registri privat, dockercfg dan docker.

Format autentikasi dockercfg

Format dockercfg menggunakan informasi autentikasi yang disimpan dalam file konfigurasi yang dibuat ketika Anda menjalankan perintah docker login. Anda dapat membuat file ini dengan menjalankan docker login di sistem lokal dan memasukkan nama pengguna registri, kata sandi, dan alamat email. Anda juga dapat masuk ke instans kontainer dan menjalankan perintah di sana. Tergantung pada versi Docker Anda, file ini disimpan sebagai ~/.dockercfg atau ~/.docker/config.json.

cat ~/.docker/config.json

Output:

{
  "auths": {
    "https://index.docker.io/v1/": {
      "auth": "zq212MzEXAMPLE7o6T25Dk0i"
    }
  }
}
penting

Versi Docker yang lebih baru membuat file konfigurasi seperti yang ditunjukkan di atas dengan objek auths. Agen Amazon ECS hanya mendukung data dockercfg otentikasi yang dalam format di bawah ini, tanpa objek. auths Jika Anda memiliki utilitas jq yang terinstal, Anda dapat mengekstrak data ini dengan perintah berikut: cat ~/.docker/config.json | jq .auths

cat ~/.docker/config.json | jq .auths

Output:

{
  "https://index.docker.io/v1/": {
    "auth": "zq212MzEXAMPLE7o6T25Dk0i",
    "email": "email@example.com"
  }
}

Dalam contoh di atas, variabel lingkungan berikut harus ditambahkan ke file variabel lingkungan (/etc/ecs/ecs.configuntuk AMI yang dioptimalkan Amazon ECS) yang dimuat agen kontainer Amazon ECS saat runtime. Jika Anda tidak menggunakan AMI Amazon ECS yang dioptimalkan dan Anda memulai agen secara manualdocker run, tentukan file variabel lingkungan dengan --env-file path_to_env_file opsi saat Anda memulai agen.

ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}

Anda dapat mengonfigurasi beberapa registri privat dengan sintaksis berikut:

ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"repo.example-01.com":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example-01.com"},"repo.example-02.com":{"auth":"fQ172MzEXAMPLEoF7225DU0j","email":"email@example-02.com"}}
Format autentikasi dockercfg

Format docker menggunakan representasi server registri JSON yang harus diautentikasi dengan agen. Hal ini juga mencakup parameter autentikasi yang diperlukan oleh registri tersebut (seperti nama pengguna, kata sandi, dan alamat email untuk akun tersebut). Untuk akun Docker Hub, representasi JSON terlihat seperti berikut ini:

{ "https://index.docker.io/v1/": { "username": "my_name", "password": "my_password", "email": "email@example.com" } }

Dalam contoh ini, variabel lingkungan berikut harus ditambahkan ke file variabel lingkungan (/etc/ecs/ecs.configuntuk AMI yang dioptimalkan Amazon ECS) yang dimuat agen kontainer Amazon ECS saat runtime. Jika Anda tidak menggunakan AMI Amazon ECS yang dioptimalkan, dan Anda memulai agen secara manualdocker run, tentukan file variabel lingkungan dengan --env-file path_to_env_file opsi saat Anda memulai agen.

ECS_ENGINE_AUTH_TYPE=docker ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}

Anda dapat mengonfigurasi beberapa registri privat dengan sintaksis berikut:

ECS_ENGINE_AUTH_TYPE=docker ECS_ENGINE_AUTH_DATA={"repo.example-01.com":{"username":"my_name","password":"my_password","email":"email@example-01.com"},"repo.example-02.com":{"username":"another_name","password":"another_password","email":"email@example-02.com"}}

Prosedur

Gunakan prosedur berikut untuk mengaktifkan pendaftar pribadi untuk instance kontainer Anda.

Untuk mengaktifkan pendaftar pribadi di AMI Amazon ECS yang dioptimalkan
  1. Masuk ke instans kontainer Anda menggunakan SSH.

  2. Buka file /etc/ecs/ecs.config dan tambahkan nilai ECS_ENGINE_AUTH_TYPE dan ECS_ENGINE_AUTH_DATA untuk registri dan akun Anda:

    sudo vi /etc/ecs/ecs.config

    Contoh ini mengautentikasi akun pengguna Docker Hub:

    ECS_ENGINE_AUTH_TYPE=docker ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
  3. Lakukan pemeriksaan untuk melihat apakah agen Anda menggunakan variabel lingkungan ECS_DATADIR untuk menyimpan statusnya:

    docker inspect ecs-agent | grep ECS_DATADIR

    Output:

    "ECS_DATADIR=/data",
    penting

    Jika perintah sebelumnya tidak mengembalikan variabel lingkungan ECS_DATADIR, Anda harus menghentikan setiap tugas yang berjalan pada instans kontainer ini sebelum menghentikan agen. Agen yang lebih baru dengan variabel lingkungan ECS_DATADIR menyimpan statusnya dan Anda dapat menghentikannya saat tugas sedang berjalan tanpa masalah. Untuk informasi selengkapnya, lihat Memperbarui agen kontainer Amazon ECS.

  4. Hentikan layanan ecs:

    sudo stop ecs

    Output:

    ecs stop/waiting
  5. Mulai ulang layanan ecs.

    • Untuk Amazon ECS yang dioptimalkan Amazon Linux 2 AMI:

      sudo systemctl restart ecs
    • Untuk Amazon ECS yang dioptimalkan Amazon Linux AMI:

      sudo stop ecs && sudo start ecs
  6. (Opsional) Anda dapat memastikan bahwa agen sedang berjalan dan melihat beberapa informasi tentang instans kontainer baru dengan melakukan kueri pada operasi API introspeksi agen. Untuk informasi selengkapnya, lihat Introspeksi wadah Amazon ECS.

    curl http://localhost:51678/v1/metadata
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.