Mengambil image Docker Hub yang di-cache

Artifact Registry menyimpan cache image Docker Hub publik yang sering diakses di mirror.gcr.io. Anda dapat mengonfigurasi daemon Docker untuk menggunakan image publik yang di-cache jika tersedia, atau menarik image dari Docker Hub jika salinan yang di-cache tidak tersedia.

Google Cloud layanan seperti Cloud Build dan Google Kubernetes Engine secara otomatis memeriksa image yang di-cache sebelum mencoba menarik image dari Docker Hub. Layanan

Gambar yang di-cache di mirror.gcr.io adalah:

  • Disimpan dalam repositori yang dikelola oleh Google Cloud.
  • Lebih terlindungi dari gangguan Docker Hub.
  • Terintegrasi dengan ekosistem Google Cloud .
  • Tetap disinkronkan dengan Docker Hub.

Mengonfigurasi daemon Docker

Untuk mengonfigurasi daemon Docker agar menarik image dari cache Artifact Registry:

CLI

  1. Konfigurasi daemon dengan salah satu cara berikut:

    • Untuk mengonfigurasi daemon Docker secara otomatis saat startup, tetapkan nilai berikut di /etc/docker/daemon.json

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • Saat memulai daemon, teruskan nama host Artifact Registry:

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • Tambahkan baris berikut ke file /etc/default/docker Anda:

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. Mulai ulang daemon Docker.

    • Di Linux, jalankan salah satu perintah berikut:

      sudo service docker restart
      

      atau

      sudo service docker stop && sudo service docker start
      
    • Di macOS atau Windows, jalankan perintah berikut:

      docker-machine restart
      

UI Docker

  1. Buka menu Preferences Docker.
  2. Klik Daemon.
  3. Klik Lanjutan. Di kolom JSON, tambahkan kunci registry-mirrors dengan https://mirror.gcr.io sebagai nilai:

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. Klik Terapkan & Mulai Ulang.

Untuk memverifikasi bahwa cache dikonfigurasi dengan benar, jalankan:

docker system info

Output harus menyertakan Registry Mirrors, dan akan terlihat seperti berikut:

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 2
Server Version: 17.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
...
Registry Mirrors:
 https://mirror.gcr.io

Mengambil gambar yang di-cache

Artifact Registry menambahkan gambar yang sering diminta ke cache sehingga tersedia untuk permintaan mendatang. Selain itu, gambar yang tidak lagi diminta akan dihapus secara berkala.

Setelah Anda mengonfigurasi daemon Docker untuk menggunakan cache Artifact Registry, Docker akan melakukan langkah-langkah berikut saat Anda menarik image Docker Hub publik dengan perintah docker pull:

  1. Daemon Docker memeriksa cache Artifact Registry dan mengambil image jika ada. Jika konfigurasi daemon Anda menyertakan mirror Docker lainnya, daemon akan memeriksa setiap mirror secara berurutan untuk mendapatkan salinan image yang di-cache.
  2. Jika image masih belum ditemukan, daemon Docker akan mengambil image dari repositori kanonis di Docker Hub.

Mengambil image yang di-cache tidak dihitung terhadap batas frekuensi Docker Hub. Namun, tidak ada jaminan bahwa gambar tertentu akan tetap di-cache untuk jangka waktu yang lebih lama. Hanya dapatkan image yang di-cache di mirror.gcr.io dengan mengonfigurasi daemon Docker.

Untuk melakukan autentikasi ke Docker Hub untuk image yang tidak di-cache di mirror.gcr.io, gunakan repositori jarak jauh Artifact Registry. Repositori jarak jauh mendukung autentikasi ke Docker Hub. Sebaiknya lakukan autentikasi ke Docker Hub meskipun Anda hanya menggunakan image publik, karena hal ini akan meningkatkan batas kecepatan download Anda. Untuk mengetahui informasi selengkapnya tentang batas kapasitas download Docker Hub, lihat Batas kapasitas Docker Hub.

Pertimbangan

Saat Anda menggunakan cache Docker Hub Artifact Registry, pertimbangkan hal berikut:

  • Artifact Registry hanya bertindak sebagai cache untuk image yang Anda simpan di Docker Hub. Google Cloud tidak memvalidasi, memindai, atau memperbaiki kerentanan dalam image yang di-cache dari Docker Hub. Anda bertanggung jawab untuk memastikan bahwa gambar yang Anda simpan di Docker Hub memenuhi persyaratan keamanan dan kepatuhan organisasi Anda. Jika Anda memerlukan pemindaian kerentanan aktif, pertimbangkan untuk menggunakan Artifact Analysis.

  • Cache Artifact Registry dirancang untuk meningkatkan stabilitas, dan tidak langsung menghapus image saat dihapus dari Docker Hub. Image yang dihapus dari Docker Hub mungkin tetap tersedia di cache Artifact Registry hingga beberapa hari sebelum dihapus dari cache. Google Cloud Layanan yang mengonfigurasi penggunaan cache sebelumnya, seperti Cloud Build dan Google Kubernetes Engine, dapat terus menggunakan image yang tidak dihapus secara otomatis dari cache Artifact Registry.

Langkah berikutnya