Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam panduan mulai cepat ini, Anda menggunakan perintah Tugas Azure Container Registry untuk membangun, mendorong, dan menjalankan citra kontainer Docker dengan cepat langsung di dalam Azure, tanpa penginstalan Docker lokal. Tugas ACR adalah serangkaian fitur dalam Azure Container Registry untuk membantu Anda mengelola dan memodifikasi citra kontainer di seluruh siklus hidup kontainer. Contoh ini menunjukkan cara memindahkan siklus pengembangan gambar kontainer "inner-loop" Anda ke cloud dengan build sesuai permintaan menggunakan Dockerfile lokal.
Setelah menyelesaikan panduan kilat ini, jelajahi fitur lanjutan ACR Tasks dengan mengikuti tutorial. Tugas ACR dapat mengotomatiskan build gambar berdasarkan penerapan kode atau pembaruan gambar dasar, atau menguji beberapa kontainer secara paralel, di antara skenario lainnya.
Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Mengautentikasi ke Azure menggunakan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan az upgrade.
Buat grup sumber daya
Jika Anda belum memiliki registri kontainer, pertama-tama buat grup sumber daya dengan perintah az group create. Grup sumber daya Azure adalah kontainer logis tempat Anda menyebarkan dan mengelola sumber daya Azure.
Contoh berikut ini menampilkan cara membuat grup sumber daya bernama myResourceGroup di lokasi eastus.
az group create --name myResourceGroup --location eastus
Membuat registri kontainer
Buat registri kontainer dengan menggunakan perintah az acr create . Nama registri haruslah unik dalam Azure, dan berisi antara 5-50 karakter alfanumerik. Dalam contoh berikut, mycontainerregistry008 digunakan. Perbarui nilai ini ke nilai unik.
az acr create --resource-group myResourceGroup \
--name mycontainerregistry008 --sku Basic
Contoh ini membuat registri Dasar, opsi dengan biaya yang dioptimalkan untuk pengembang yang masih belajar tentang Azure Container Registry. Untuk detail tentang tingkat layanan yang tersedia, lihat Fitur dan batasan SKU Azure Container Registry.
Membangun dan mengunggah citra dari Dockerfile
Sekarang gunakan Azure Container Registry untuk membuat dan menerbitkan citra. Pertama, buat direktori kerja lokal. Kemudian buat Dockerfile bernama Dockerfile dengan satu baris: FROM mcr.microsoft.com/hello-world. Baris ini adalah contoh sederhana yang membangun citra kontainer Linux dari citra yang dihosting di hello-world Microsoft Container Registry. Anda dapat membuat Dockerfile standar Anda sendiri dan membuat gambar untuk platform lain. Jika Anda bekerja di shell bash, buat Dockerfile dengan menggunakan perintah berikut:
echo "FROM mcr.microsoft.com/hello-world" > Dockerfile
Jalankan perintah az acr build . Ini membangun gambar dan, setelah gambar berhasil dibangun, mendorongnya ke registri Anda. Contoh berikut membuat dan mengirim image sample/hello-world:v1. Bagian . di akhir perintah mengatur lokasi Dockerfile, dalam hal ini yaitu direktori saat ini.
az acr build --image sample/hello-world:v1 \
--registry mycontainerregistry008 \
--file Dockerfile .
Nota
Jika Anda menggunakan registri sumber yang didukung ABAC, Anda harus meneruskan identitas pemanggil sebagai identitas yang digunakan build untuk autentikasi dengan registri. Teruskan identitas dengan menggunakan --source-acr-auth-id [caller] flag saat menjalankan az acr build.
Untuk informasi selengkapnya, lihat efek mengaktifkan ABAC pada Tugas ACR, Tugas Cepat, Pembangunan Cepat, dan Pengerjaan Cepat.
Hasil dari pembangunan dan pengunggahan yang berhasil adalah sebagai berikut:
Packing source code into tar to upload...
Uploading archived source code from '/tmp/build_archive_b0bc1e5d361b44f0833xxxx41b78c24e.tar.gz'...
Sending context (1.856 KiB) to registry: mycontainerregistry008...
Queued a build with ID: ca8
Waiting for agent...
2023/03/18 21:56:57 Using acb_vol_4c7ffa31-c862-4be3-xxxx-ab8e615c55c4 as the home volume
2023/03/18 21:56:57 Setting up Docker configuration...
2023/03/18 21:56:58 Successfully set up Docker configuration
2023/03/18 21:56:58 Logging in to registry: mycontainerregistry008.azurecr.io
2023/03/18 21:56:59 Successfully logged into mycontainerregistry008.azurecr.io
2023/03/18 21:56:59 Executing step ID: build. Working directory: '', Network: ''
2023/03/18 21:56:59 Obtaining source code and scanning for dependencies...
2023/03/18 21:57:00 Successfully obtained source code and scanned for dependencies
2023/03/18 21:57:00 Launching container with name: build
Sending build context to Docker daemon 13.82kB
Step 1/1 : FROM mcr.microsoft.com/hello-world
latest: Pulling from hello-world
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586fxxxx21577a99efb77324b0fe535
Successfully built fce289e99eb9
Successfully tagged mycontainerregistry008.azurecr.io/sample/hello-world:v1
2023/03/18 21:57:01 Successfully executed container: build
2023/03/18 21:57:01 Executing step ID: push. Working directory: '', Network: ''
2023/03/18 21:57:01 Pushing image: mycontainerregistry008.azurecr.io/sample/hello-world:v1, attempt 1
The push refers to repository [mycontainerregistry008.azurecr.io/sample/hello-world]
af0b15c8625b: Preparing
af0b15c8625b: Layer already exists
v1: digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a size: 524
2023/03/18 21:57:03 Successfully pushed image: mycontainerregistry008.azurecr.io/sample/hello-world:v1
2023/03/18 21:57:03 Step ID: build marked as successful (elapsed time in seconds: 2.543040)
2023/03/18 21:57:03 Populating digests for step ID: build...
2023/03/18 21:57:05 Successfully populated digests for step ID: build
2023/03/18 21:57:05 Step ID: push marked as successful (elapsed time in seconds: 1.473581)
2023/03/18 21:57:05 The following dependencies were found:
2023/03/18 21:57:05
- image:
registry: mycontainerregistry008.azurecr.io
repository: sample/hello-world
tag: v1
digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
runtime-dependency:
registry: registry.hub.docker.com
repository: library/hello-world
tag: v1
digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
git: {}
Run ID: ca8 was successful after 10s
Jalankan gambar
Sekarang jalankan image yang Anda buat dan unggah ke registri Anda. Gunakan az acr run untuk menjalankan perintah kontainer. Dalam alur kerja pengembangan kontainer Anda, langkah ini mungkin merupakan langkah validasi sebelum Anda menyebarkan gambar, atau Anda dapat menyertakan perintah dalam file YAML multi-langkah.
Contoh berikut menggunakan untuk menentukan titik akhir registri $Registry tempat Anda menjalankan perintah:
az acr run --registry mycontainerregistry008 \
--cmd '$Registry/sample/hello-world:v1' /dev/null
Nota
Jika Anda menggunakan registri sumber dengan dukungan ABAC, Anda harus meneruskan identitas pemanggil sebagai identitas yang digunakan oleh run perintah untuk mengautentikasi dengan registri. Operkan identitas dengan menggunakan --source-acr-auth-id [caller] flag saat menjalankan az acr run.
Untuk informasi selengkapnya, lihat efek mengaktifkan ABAC pada Tugas ACR, Tugas Cepat, Pembangunan Cepat, dan Pengerjaan Cepat.
Parameter cmd dalam contoh ini menjalankan kontainer dalam konfigurasi defaultnya, tetapi cmd mendukung parameter docker run tambahan atau bahkan perintah docker lainnya.
Outputnya mirip dengan berikut ini:
Packing source code into tar to upload...
Uploading archived source code from '/tmp/run_archive_ebf74da7fcb04683867b129e2ccad5e1.tar.gz'...
Sending context (1.855 KiB) to registry: mycontainerre...
Queued a run with ID: cab
Waiting for an agent...
2023/03/19 19:01:53 Using acb_vol_60e9a538-b466-475f-9565-80c5b93eaa15 as the home volume
2023/03/19 19:01:53 Creating Docker network: acb_default_network, driver: 'bridge'
2023/03/19 19:01:53 Successfully set up Docker network: acb_default_network
2023/03/19 19:01:53 Setting up Docker configuration...
2023/03/19 19:01:54 Successfully set up Docker configuration
2023/03/19 19:01:54 Logging in to registry: mycontainerregistry008.azurecr.io
2023/03/19 19:01:55 Successfully logged into mycontainerregistry008.azurecr.io
2023/03/19 19:01:55 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
2023/03/19 19:01:55 Launching container with name: acb_step_0
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
2023/03/19 19:01:56 Successfully executed container: acb_step_0
2023/03/19 19:01:56 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 0.843801)
Run ID: cab was successful after 6s
Membersihkan sumber daya
Saat Anda tidak lagi memerlukan sumber daya, gunakan perintah az group delete untuk menghapus grup sumber daya, registri kontainer, dan gambar kontainer yang disimpan dalam registri.
az group delete --name myResourceGroup
Langkah berikutnya
Dalam panduan cepat ini, Anda telah menggunakan fitur Tugas Azure Container Registry untuk membuat, mengunggah, dan menjalankan citra kontainer Docker dengan cepat langsung di dalam Azure, tanpa penginstalan Docker lokal. Untuk mempelajari tentang penggunaan Tugas ACR untuk mengotomatiskan pembuatan dan pembaruan image, lihat tutorial Azure Container Registry Tasks.