Mengambil image Docker Hub yang di-cache

Container Registry meng-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 mengambil image dari Docker Hub jika salinan yang di-cache tidak tersedia.

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

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

  • Disimpan di repositori yang dikelola Google.
  • Lebih terisolasi dari pemadaman layanan Docker Hub.
  • Mudah diintegrasikan dengan ekosistem Google Cloud.
  • Terus disinkronkan dengan Docker Hub.

Mengonfigurasi daemon Docker

Untuk mengonfigurasi daemon Docker agar mengambil image dari cache Container Registry:

CLI

  1. Konfigurasikan daemon dengan salah satu cara berikut:

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

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • Saat Anda memulai daemon, teruskan nama host Container 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 Preferensi 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 mirip dengan 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

Container Registry menambahkan image yang sering diminta ke cache sehingga tersedia untuk permintaan mendatang. Tindakan ini juga menghapus gambar secara berkala yang tidak lagi diminta.

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

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

Mengambil image yang di-cache tidak akan mengurangi batas kapasitas Docker Hub. Namun, tidak ada jaminan bahwa gambar tertentu akan tetap di-cache selama periode waktu yang lama. Hanya dapatkan image yang di-cache di mirror.gcr.io dengan mengonfigurasi daemon Docker. Permintaan untuk menarik langsung dari mirror.gcr.io akan gagal jika salinan gambar yang di-cache tidak ada.

Langkah selanjutnya