
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Publish your container image to Container Registry
/ 100
Docker adalah platform terbuka untuk mengembangkan, mengirim, dan menjalankan aplikasi. Dengan Docker, Anda dapat memisahkan aplikasi dari infrastruktur dan memperlakukan infrastruktur layaknya aplikasi terkelola. Docker membantu mengirim kode, menguji, dan men-deploy lebih cepat, serta mempersingkat siklus antara menulis dan menjalankan kode.
Docker melakukan proses tersebut dengan menggabungkan fitur containerization kernel dengan alur kerja serta peralatan yang membantu Anda mengelola dan men-deploy aplikasi.
Container Docker dapat langsung digunakan di Kubernetes, sehingga memudahkan container dijalankan di Kubernetes Engine. Setelah mempelajari hal-hal penting mengenai Docker, Anda akan memiliki keterampilan untuk mulai mengembangkan Kubernetes serta aplikasi dalam container.
Di lab ini, Anda akan mempelajari cara:
Ini adalah lab tingkat pendahuluan. Anda dianggap tidak memiliki atau hanya memiliki sedikit pengalaman terkait Docker dan container. Pemahaman dalam menggunakan Cloud Shell dan command line direkomendasikan, tetapi tidak wajib.
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan info berikut:
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
Anda juga dapat menemukan Username di panel Lab Details.
Klik Next.
Salin Password di bawah dan tempel ke dialog Welcome.
Anda juga dapat menemukan Password di panel Lab Details.
Klik Next.
Klik halaman berikutnya:
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
Klik Authorize.
Output Anda sekarang akan terlihat seperti ini:
Output:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
(Output Perintah)
Container sederhana ini menampilkan Hello from Docker!
pada layar Anda. Meskipun perintah tampak sederhana, perhatikan jumlah langkah yang dijalankan di output. Daemon Docker menelusuri image hello-world, tidak menemukan image secara lokal, mengambil image dari registry publik bernama Docker Hub, membuat container dari image tersebut, lalu menjalankan container tersebut untuk Anda.
(Output Perintah)
Ini adalah image yang diambil dari registry publik Docker Hub. ID Image memiliki format hash SHA256—kolom ini menentukan image Docker yang disediakan. Jika tidak menemukan image secara lokal, daemon Docker akan secara default menelusuri image di registry publik.
(Output Perintah)
Perhatikan bahwa saat Anda menjalankan perintah ini untuk kedua kalinya, daemon Docker mencari image di registry lokal dan menjalankan container dari image tersebut. Daemon Docker tidak perlu mengambil image dari Docker Hub.
(Output Perintah)
Tidak ada container yang berjalan. Anda sudah keluar dari container hello-world yang Anda jalankan sebelumnya.
docker ps -a
:(Output Perintah)
Ini menunjukkan kepada Anda Container ID
, UUID yang dibuat oleh Docker untuk mengidentifikasi container, dan metadata lainnya tentang proses yang dijalankan. Names
container juga dibuat secara acak, tetapi dapat ditentukan dengan docker run --name [container-name] hello-world
.
Di bagian ini, Anda akan membangun image Docker yang didasarkan pada aplikasi node sederhana.
test
.Dockerfile
:File ini menginstruksikan daemon Docker cara membangun image.
"."
) ke dalam container.Dockerfile
. Sekarang, Anda akan menulis aplikasi node, dan setelah itu Anda akan membangun image.
Ini adalah server HTTP sederhana yang memproses port 80 dan menampilkan "Hello World".
Sekarang, bangun image-nya.
"."
yang berarti direktori saat ini, sehingga Anda perlu menjalankan perintah ini dari dalam direktori yang memiliki Dockerfile:Perlu waktu beberapa menit untuk menyelesaikan eksekusi perintah ini. Setelah selesai, output Anda akan terlihat seperti berikut:
Flag -t
dimaksudkan untuk memberi nama dan tag image dengan sintaksis name:tag
. Nama image-nya adalah node-app
dan tag-nya
adalah 0.1
. Tag ini sangat direkomendasikan saat membangun image Docker. Jika Anda tidak menetapkannya, tag akan ditetapkan secara default ke latest
, sehingga membedakan image yang baru dengan yang lama menjadi lebih sulit. Selain itu, perhatikan bahwa setiap baris di Dockerfile
di atas menghasilkan lapisan container menengah saat image dibangun.
Output Anda akan terlihat seperti berikut:
Perhatikan bahwa node
adalah image dasar dan node-app
adalah image yang Anda bangun. Anda tidak dapat menghapus node
tanpa menghapus node-app
terlebih dahulu. Ukuran image relatif kecil dibandingkan VM. Image node versi lain, seperti node:slim
dan node:alpine
, dapat memberikan image yang berukuran lebih kecil lagi guna memudahkan portabilitas. Topik tentang cara mengurangi ukuran container dijelaskan lebih lanjut di Topik Lanjutan. Anda dapat melihat semua versi di repositori resmi dalam node.
(Output Perintah)
Flag --name
memungkinkan Anda memberi nama container jika dikehendaki. Flag -p
memerintahkan Docker untuk memetakan port 4000 host ke port 80 container. Sekarang, Anda dapat menjangkau server di http://localhost:4000
. Tanpa pemetaan port, Anda tidak dapat menjangkau container di localhost.
+
), lalu uji server:(Output Perintah)
Container akan berjalan selama terminal awal juga berjalan. Jika ingin container dijalankan di latar belakang (tidak terikat dengan sesi terminal), Anda harus menetapkan flag -d
.
(Output Perintah)
docker ps
. Anda dapat melihat log dengan mengeksekusi docker logs [container_id]
.docker logs 17b
jika ID container berupa 17bcaca6f....
(Output Perintah)
Sekarang, modifikasi aplikasinya.
app.js
dengan editor teks pilihan Anda (misalnya nano atau vim) dan ganti "Hello World" dengan string lain:0.2
:(Output Perintah)
Perhatikan bahwa pada Langkah 2 Anda menggunakan lapisan cache yang ada. Dari Langkah 3 dan seterusnya, lapisan tersebut dimodifikasi karena Anda membuat perubahan pada app.js
.
(Output Perintah)
(Output Perintah)
(Output Perintah)
Setelah Anda mempelajari cara membangun dan menjalankan container, sekarang pelajari proses debug.
docker logs [container_id]
. Jika Anda ingin memantau output log saat container dijalankan, gunakan opsi -f
.(Output Perintah)
Terkadang, Anda mungkin ingin memulai sesi Bash interaktif di dalam container yang sedang berjalan.
docker exec
untuk melakukannya. Buka terminal lain (di Cloud Shell, klik ikon +), lalu masukkan perintah berikut:Flag -it
memungkinkan Anda berinteraksi dengan container dengan mengalokasikan pseudo-tty dan tetap membuka stdin. Perhatikan bash yang berjalan di direktori WORKDIR
(/app) yang ditetapkan di Dockerfile
. Dari sini, Anda memiliki sesi shell interaktif dalam container untuk melakukan debug.
(Output Perintah)
(Output Perintah)
(Output Perintah)
--format
untuk memeriksa kolom tertentu dari JSON yang ditampilkan. Contoh:(Contoh Output)
Pastikan untuk memeriksa referensi dokumentasi Docker berikut guna mengetahui informasi selengkapnya tentang proses debug:
Sekarang, Anda akan mengirim image ke Google Artifact Registry. Setelah itu, Anda akan menghapus semua container dan image guna melakukan simulasi lingkungan baru, lalu mengambil dan menjalankan container. Ini akan menunjukkan portabilitas container Docker.
Untuk mengirim image ke registry pribadi Anda yang dihosting oleh Artifact Registry, Anda perlu memberi tag pada image dengan nama registry. Formatnya adalah <regional-repository>-docker.pkg.dev/my-project/my-repo/my-image
.
Anda harus membuat repositori sebelum dapat mengirim image apa pun ke dalamnya. Mengirim image tidak dapat memicu pembuatan repositori dan akun layanan Cloud Build tidak memiliki izin untuk membuat repositori.
Dari Navigation Menu, lihat bagian CI/CD, lalu pilih Artifact Registry > Repositories.
Klik ikon +CREATE REPOSITORY di samping repositori.
Tetapkan my-repository
sebagai nama repositori.
Pilih Docker sebagai formatnya.
Pada Location Type, pilih Region lalu pilih lokasi :
Klik Create.
Sebelum Anda dapat mengirim atau mengambil image, konfigurasikan Docker agar menggunakan Google Cloud CLI untuk mengautentikasi permintaan ke Artifact Registry.
Y
saat diminta.Perintah ini memperbarui konfigurasi Docker Anda. Sekarang Anda dapat terhubung dengan Artifact Registry di project Google Cloud untuk mengirim dan mengambil image.
node-app:0.2
.(Output Perintah)
Output perintah (milik Anda dapat berbeda):
Setelah pengiriman selesai, dari Navigation Menu, di bagian CI/CD, klik Artifact Registry > Repositories.
Klik my-repository. Anda akan melihat container Docker node-app
telah dibuat:
Anda dapat memulai VM baru, menjalankan ssh ke VM tersebut, dan menginstal gcloud. Agar mudah, hapus saja semua container dan image guna melakukan simulasi lingkungan baru.
Anda harus menghapus semua image turunan (dari node:Its
) sebelum menghapus image node tersebut.
(Output Perintah)
Pada tahap ini, Anda memiliki lingkungan yang pseudo-baru.
(Output Perintah)
Klik Check my progress untuk memverifikasi tugas yang telah diselesaikan. Jika Anda berhasil memublikasikan image container ke Artifact Registry, Anda akan melihat skor penilaian.
Di sinilah portabilitas container ditunjukkan. Selama masih terinstal di host (baik lokal maupun VM), Docker dapat mengambil image dari registry publik atau pribadi dan menjalankan container berdasarkan image tersebut. Tidak ada dependensi aplikasi yang harus diinstal di host, kecuali Docker.
Selamat! Dalam lab ini, Anda telah melakukan berbagai aktivitas praktis, termasuk menjalankan container berdasarkan image publik dari Docker Hub. Anda juga telah membuat image container Anda sendiri dan berhasil mengirimnya ke Google Artifact Registry. Selain itu, lab ini juga membekali Anda dengan keterampilan untuk secara efektif men-debug container yang sedang berjalan. Selanjutnya, Anda memperoleh pengalaman dalam menjalankan container berdasarkan image yang telah diambil dari Google Artifact Registry, sehingga meningkatkan pemahaman dan kemahiran Anda dalam Docker.
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 29 Februari 2024
Lab Terakhir Diuji pada 29 Februari 2024
Hak cipta 2025 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.
Konten ini tidak tersedia untuk saat ini
Kami akan memberi tahu Anda melalui email saat konten tersedia
Bagus!
Kami akan menghubungi Anda melalui email saat konten tersedia
One lab at a time
Confirm to end all existing labs and start this one