Mengirim Citra ke Registri
Konfigurasikan alur kerja untuk mengirim citra Docker yang telah dibangun ke registri kontainer seperti Docker Hub atau GitHub Container Registry.
Mengirim Citra ke Registri adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa Itu Registri Kontainer?
Registri kontainer adalah layanan penyimpanan daring yang aman untuk citra Docker Anda. Anggaplah registri sebagai drive awan yang dirancang khusus untuk paket aplikasi Anda.
- Registri menyimpan berbagai versi citra Anda.
- Registri memudahkan Anda berbagi citra dengan orang lain.
- Registri sangat penting untuk penerapan di berbagai lingkungan.
Mengapa Menggunakan Registri?
Registri sangat penting dalam pengembangan perangkat lunak modern. Registri menyediakan beberapa manfaat utama:
- Berbagi Citra: Mendistribusikan citra aplikasi Anda dengan mudah.
- Pengelolaan Versi: Menyimpan dan mengelola berbagai versi aplikasi Anda.
- Penerapan Andal: Memastikan penerapan yang konsisten di berbagai lingkungan.
- Keamanan: Banyak registri menyediakan pemindaian kerentanan.
Layanan Registri Umum
Ada banyak layanan registri kontainer yang tersedia. Dua layanan populer yang sering Anda temui adalah:
- Docker Hub: Registri publik yang banyak digunakan. Cocok untuk berbagi citra publik dan proyek pribadi.
- Registri Kontainer GitHub (GHCR): Terintegrasi erat dengan repositori GitHub. Sangat baik untuk citra privat dan organisasi yang sudah menggunakan GitHub.
Penyedia awan besar lainnya juga menawarkan registri mereka sendiri, seperti AWS ECR atau Registri Kontainer Google.
Autentikasi Registri
Sebelum dapat mengirim citra ke registri, Anda perlu membuktikan identitas Anda. Proses ini disebut autentikasi, atau "masuk".
Biasanya, Anda akan memberikan nama pengguna dan token akses pribadi (PAT) atau kata sandi. Kredensial ini memastikan hanya pengguna yang berwenang yang dapat mengirim atau mengambil citra dari repositori privat Anda.
Menggunakan docker/login-action
Di GitHub Actions, cara terbaik untuk melakukan autentikasi ke sebagian besar registri yang kompatibel dengan Docker adalah menggunakan docker/login-action.
Aksi ini secara aman memasukkan alur kerja Anda ke registri yang ditentukan, sehingga langkah-langkah berikutnya dapat mengirim citra. Aksi ini menerima username dan password sebagai masukan.
Mengirim ke Docker Hub
Untuk mengirim citra ke Docker Hub, alur kerja Anda perlu:
- Masuk: Gunakan
docker/login-actiondengan nama pengguna Docker Hub dan Token Akses Pribadi (PAT) yang disimpan sebagai Rahasia GitHub. - Bangun & Kirim: Gunakan
docker/build-push-actionuntuk membangun citra dan tetapkanpush: true. Pastikan label citra Anda menyertakan nama pengguna Docker Hub, misalnyayour_username/my-app:latest.
Contoh Alur Kerja Docker Hub
Berikut contoh alur kerja GitHub Actions untuk membangun dan mengirim citra Docker ke Docker Hub. Ingatlah untuk menyiapkan DOCKER_USERNAME dan DOCKER_TOKEN sebagai Rahasia GitHub di repositori Anda.
name: Publish Docker image to Docker Hub
on:
push:
branches: [ "main" ]
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/my-app:latestMengirim ke GHCR
Registri Kontainer GitHub (GHCR) menawarkan integrasi yang mulus. Perbedaan utama untuk GHCR:
- Autentikasi: Anda dapat menggunakan
GITHUB_TOKENbawaan untuk autentikasi. Tetapkanusername: ${{ github.actor }}danpassword: ${{ secrets.GITHUB_TOKEN }}. - Izin: Tugas Anda memerlukan izin
packages: write. - Pelabelan Citra: Citra diberi label seperti
ghcr.io/<OWNER>/<REPOSITORY>:<TAG>.
Contoh Alur Kerja GHCR
Alur kerja ini mendemonstrasikan pengiriman citra ke Registri Kontainer GitHub. Perhatikan blok permissions dan format label citra.
name: Publish Docker image to GHCR
on:
push:
branches: [ "main" ]
jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write # Required for GHCR
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ghcr.io/${{ github.repository }}:latestUji Pemahaman Anda
Mari kita tinjau secara singkat hal-hal yang telah Anda pelajari tentang mendorong image ke registri container.
Rangkuman: Dorong Image Anda
Kerja bagus! Anda telah mempelajari cara mendorong image Docker ke registri container menggunakan GitHub Actions.
- Registri container menyimpan dan mengelola image Docker Anda.
- Autentikasi menggunakan kredensial adalah langkah awal yang sangat penting.
docker/login-actionmembantu Anda masuk dengan aman.- Anda telah melihat contoh untuk Docker Hub dan GitHub Container Registry, serta memahami persyaratan autentikasi dan pemberian tag yang berbeda pada masing-masing layanan.
Selanjutnya, Anda akan mempelajari cara menerapkan image tersebut ke Kubernetes!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengirim Citra ke Registri” gratis?
Ya — teks lengkap “Mengirim Citra ke Registri” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengirim Citra ke Registri”?
Konfigurasikan alur kerja untuk mengirim citra Docker yang telah dibangun ke registri kontainer seperti Docker Hub atau GitHub Container Registry. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Mengirim Citra ke Registri” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membangun Citra Docker dengan Actions
- Mengirim Citra ke Registri
- Menerapkan ke Kubernetes dengan Actions
- Chart Helm dan Manifes Kubernetes dalam CI/CD