Anda dapat menjalankan satu container di VM atau di setiap VM dalam grup instance terkelola (MIG). Untuk melakukannya, tentukan image container dan parameter konfigurasi saat Anda membuat instance VM atau template instance.
Dokumen ini menjelaskan opsi konfigurasi untuk menjalankan container di instance Compute Engine.
Sebelum memulai
- Jika Anda belum memahami container, baca Container di Compute Engine.
- Jika Anda belum memahami Docker, baca dokumentasi Docker.
- Baca cara Men-deploy container di Compute Engine.
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
- Set a default region and zone.
Saat Anda membuat instance atau template instance yang akan digunakan untuk Men-deploy container pada VM dan MIG, tentukan konfigurasi container menggunakan konsol Google Cloud atau Google Cloud CLI.
Bagian berikut menjelaskan cara mengonfigurasi container pada instance VM, tetapi Anda juga dapat mengonfigurasi opsi berikut saat membuat template instance. Gunakan Google Cloud konsol atau Google Cloud CLI untuk mengonfigurasi opsi bagi instance VM di template instance.
Anda dapat menggunakan perintah
docker rununtuk mengonfigurasi container pada instance VM yang menjalankan Container-Optimized OS atau menentukan perintahdocker rundalam skrip startup untuk membuat dan mengonfigurasi VM. Untuk mengetahui informasi selengkapnya, lihat Menggunakan skrip startup untuk men-deploy container di VM.Menentukan kebijakan mulai ulang
Anda dapat menetapkan kebijakan mulai ulang untuk menentukan apakah akan memulai ulang container saat keluar. Kebijakan defaultnya adalah selalu memulai ulang. Anda juga dapat memilih kebijakan untuk memulai ulang jika gagal atau jangan pernah memulai ulang.
docker run
Gunakan flag
--restartdari perintahdocker run. Upaya berulang untuk memulai ulang container didorong oleh perilaku Docker default, seperti yang disebutkan dalam referensi--restartDocker.Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Di bagian Restart policy, pilih kebijakan mulai ulang untuk container.
- Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan flag
--container-restart-policyuntuk menentukan kebijakan mulai ulang container:always(default)on-failurenever
Contoh berikut meluncurkan container dengan kebijakan mulai ulang
on-failure, yang berarti mulai ulang hanya terjadi jika kode keluar container bukan nol:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-restart-policy on-failure
Gunakan perintah
gcloud compute instances update-containerdengan flag--container-restart-policyuntuk kebijakan mulai ulang pada container yang berjalan di VM.Menjalankan container dalam mode hak istimewa
Anda dapat menjalankan container dalam mode hak istimewa untuk mengizinkan akses ke semua perangkat di host. Container dijalankan sebagai "tidak memiliki hak istimewa" secara default dan tidak diizinkan untuk mengakses perangkat apa pun.
docker run
Gunakan flag
--privilegeddari perintahdocker run. Untuk mengetahui informasi selengkapnya, lihat Hak istimewa runtime dan kemampuan Linux.Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Pilih Run as privileged.
- Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan flag
--container-privilegeduntuk menjalankan container dengan hak istimewa runtime. Contoh berikut meluncurkan container busybox dalam mode hak istimewa:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-privileged
Gunakan perintah
gcloud compute instances update-containerdengan flag--container-privilegeduntuk memperbarui container pada VM. Gunakan flag--no-container-privilegeduntuk menonaktifkan mode hak istimewa.Mengalokasikan buffer untuk STDIN dalam runtime container
Anda dapat mengalokasikan buffer untuk
STDINdi runtime container agar aliranSTDINtetap terbuka dalam container. Jika tidak ditetapkan, operasi baca dariSTDINdalam container akan selalu menghasilkanEOF.Selain mengalokasikan pseudo-TTY, menjaga aliran
STDINtetap terbuka diperlukan untuk membuat shell interaktif dalam container dan agar container dapat menerima input standarnya dari pipa.docker run
Gunakan flag
--interactive(-i) dari perintahdocker run. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk tanda--interactive.Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Pilih Allocate a buffer for STDIN.
- Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan flag
--container-stdinguna mengalokasikan buffer untukSTDINdalam runtime container. Contoh berikut memulai container dan menjagaSTDIN-nya tetap terbuka:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-stdin
Gunakan perintah
gcloud compute instances update-containerdengan flag--container-stdinuntuk memperbarui container pada VM. Gunakan flag--no-container-stdinguna menonaktifkan alokasi buffer untukSTDIN.Mengalokasikan pseudo-TTY
Mengalokasikan pseudo-TTY untuk container diperlukan untuk membuat shell interaktif dalam container (bersama dengan mengalokasikan buffer untuk STDIN).
docker run
Gunakan flag
--tty (-t)dari perintahdocker run. Untuk mengetahui informasi selengkapnya, lihat flag--tty.Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Pilih Allocate a pseudo-TTY.
- Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan flag
--container-ttyuntuk mengalokasikan pseudo-TTY. Contoh berikut memulai container dan mengalokasikan pseudo-TTY:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-stdin \ --container-tty
Gunakan perintah
gcloud compute instances update-containerdengan flag--container-ttyuntuk memperbarui container pada VM. Gunakan flag--no-container-ttyuntuk tidak mengalokasikan pseudo-TTY.Mengganti perintah default untuk dijalankan saat startup container
ENTRYPOINTdari image container menentukan perintah yang dapat dieksekusi yang akan dijalankan saat container dimulai dan memungkinkan Anda menjalankan container seolah-olah perintah itu adalah biner.Anda dapat mengganti perintah
ENTRYPOINTdari image container.docker run
Gunakan flag
--entrypoint(khusus perintah, tanpa argumen) dari perintahdocker run. PelajariENTRYPOINTdan flag--entrypoint.Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Di kolom Command, masukkan satu perintah yang dapat dieksekusi tanpa parameter—misalnya,
uptime. - Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan flag
--container-commanduntuk mengganti image containerENTRYPOINT. Contoh berikut menjalankan perintahuptimedalam container busybox untuk menampilkan waktu sejak booting terakhir:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-command "uptime"
Gunakan perintah
gcloud compute instances update-containerdengan flag--container-commandguna memperbarui perintah untuk container di VM.Gunakan flag
--clear-container-commanddengan perintahupdate-containerguna menghapus perintah default untuk container yang diperbarui.Meneruskan argumen ke perintah ENTRYPOINT container
Anda dapat meneruskan (menambahkan) argumen ke perintah
ENTRYPOINTcontainer atau mengganti perintahCMDcontainer default.Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Di bagian Arguments, klik Add argument.
- Masukkan satu argumen perintah untuk setiap kotak.
- Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan flag
--container-arguntuk meneruskan argumen ke perintahENTRYPOINTimage container. Menggunakan flag terpisah untuk setiap argumen.Contoh berikut menjalankan perintah
/bin/ashdengan argumen-c 'ls -l'dalam container yang telah disiapkan untuk menjalankan busybox secara otomatis:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-command "/bin/ash" \ --container-arg="-c" \ --container-arg="ls -l"
Gunakan perintah
gcloud compute instances update-containerdengan flag--container-argguna memperbarui argumen perintah untuk container yang berjalan di VM. Pembaruan ini akan menggantikan seluruh daftar argumen dengan daftar baru.Gunakan flag
--clear-container-argsdengan perintahupdate-containeruntuk menghapus semua argumen dari deklarasi container.Mengonfigurasi opsi driver log
Jika perlu mengonfigurasi opsi driver log, Anda dapat membuat skrip startup VM untuk memperbarui file konfigurasi Docker dengan opsi logging yang Anda perlukan. Opsi ini berlaku untuk semua container yang berjalan di VM dan yang tidak menentukan opsi driver log.
Misalnya, skrip startup berikut menetapkan beberapa opsi, termasuk opsi untuk membatasi ukuran log container, lalu memulai ulang Docker di VM:
cat <<EOF > /etc/docker/daemon.json { "live-restore": true, "storage-driver": "overlay2", "log-opts": { "max-size": "10m" } } EOF systemctl restart dockerMenyetel variabel lingkungan
Anda dapat menetapkan variabel lingkungan dalam container. Hanya nilai terakhir dari
KEYyang diambil saatKEYdiulang lebih dari sekali.docker run
Gunakan flag
--envdari perintahdocker run. Pelajari cara mesin Docker memungkinkan penetapan variabel lingkungan.Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Di bagian Environment variables, klik Add variable.
- Tambahkan atau hapus variabel lingkungan jika diperlukan, satu variabel untuk setiap baris.
- Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan flag
--container-envuntuk menetapkan variabel lingkungan dalam container. Contoh berikut menetapkan tiga variabel lingkungan:HOME,MODE, danOWNER:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-env HOME=/home,MODE=test,OWNER=admin
Gunakan flag
--container-env-fileuntuk menetapkan variabel lingkungan dari file lokal. Contoh berikut menetapkan dua variabel lingkungan dari fileenv.txt:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-env-file ./env.txt
Isi file
env.txtadalah:# this is a comment HOME=/home MODE=test OWNER=adminGunakan perintah
gcloud compute instances update-containerdengan flag--container-envatau--container-env-fileuntuk memperbarui variabel lingkungan untuk container di VM. Tindakan ini akan memperbarui variabel apa pun yang ada dalam deklarasi container instance VM. Variabel yang tidak ada dalam deklarasi container akan ditambahkan.Gunakan flag
--remove-container-envuntuk menghapus variabel lingkungan saat mengupdate container pada VM. Contoh berikut menghapus variabel lingkungan yang disebutMODEdanOWNER:gcloud compute instances update-container busybox-vm \ --remove-container-env MODE,OWNER
Jika variabel lingkungan yang ditentukan tidak ada, variabel tersebut akan diabaikan secara diam-diam.
Memasang direktori host sebagai volume data
Anda dapat memasang direktori dari VM host ke dalam container.
docker run
Gunakan flag
--volumedan flag--mountdengan pemasangantype=binddari perintahdocker run. Pelajari cara mesin Docker memasang direktori host sebagai volume data.Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Di bagian Volume mounts, klik Add volume.
Dari daftar Volume type, pilih Directory, dan lakukan langkah berikut:
- Di kolom Mount path, tentukan jalur pemasangan di struktur direktori container tempat direktori host akan dipasang.
- Di kolom Host path, tentukan jalur host ke direktori host yang akan dipasang.
- Dalam daftar Mode, tentukan apakah akan memasang direktori dalam mode baca/tulis atau hanya baca.
Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan flag
--container-mount-host-pathuntuk memasang direktori VM host ke dalam container. Contoh berikut memasang direktori host/tmpke dalam container di/logsdalam mode baca/tulis:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-mount-host-path mount-path=/logs,host-path=/tmp,mode=rw
Tentukan
mode=rountuk memasang direktori host dalam mode hanya baca.Gunakan perintah
gcloud compute instances update-containerdengan flag--container-mount-host-pathuntuk memperbarui direktori host yang terpasang pada container. Menggunakan flag--remove-container-mountsuntuk menghapus pemasangan volume dengan jalur pemasangan yang ditentukan. Contoh berikut menghapus pemasangan jalur host denganmount-path=/logs:gcloud compute instances update-container busybox-vm \ --remove-container-mounts /logs
Jika jalur pemasangan yang ditentukan tidak ada, jalur tersebut akan diabaikan secara diam-diam.
Memasang sistem file tmpfs sebagai volume data
Anda dapat memasang sistem file tmpfs kosong ke dalam container.
Sistem file tmpfs kosong mirip dengan volume
EmptyDirGoogle Kubernetes Engine denganmedium:Memory. Tidak seperti Docker, yang menghapus datatmpfssaat container dimulai ulang, dengantmpfsdi container Compute Engine, volume dan datanya akan tetap ada setiap kali container dimulai ulang dan hanya dihapus saat VM dimulai ulang.Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Di bagian Volume mounts, klik Add volume.
- Dari daftar Volume type, pilih TmpFS.
- Di kolom Mount path, tentukan jalur pemasangan di struktur direktori container tempat Anda ingin memasang volume TmpFS.
- Dalam daftar Mode, tentukan apakah akan memasang volume TmpFS dalam mode baca/tulis atau hanya baca.
- Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan flag
--container-mount-tmpfsuntuk memasang sistem filetmpfskosong ke dalam container. Contoh berikut memasang sistem filetmpfske dalam container di/cachedalam mode baca/tulis:gcloud compute instances create-with-container busybox-vm \ --container-image docker.io/busybox:1.27 \ --container-mount-tmpfs mount-path=/cache
Gunakan perintah
gcloud compute instances update-containerdengan flag--container-mount-tmpfsuntuk memperbarui pemasangantmpfspada container. Gunakan flag--remove-container-mountsuntuk menghapus pemasangantmpfsdengan jalur pemasangan yang ditentukan saat mengupdate. Contoh berikut menghapus pemasangantmpfsdenganmount-path=/cache:gcloud compute instances update-container busybox-vm \ --remove-container-mounts /cache
Jika jalur pemasangan yang ditentukan tidak ada, jalur tersebut akan diabaikan secara diam-diam.
Memasang persistent disk sebagai volume data
Dengan Container-Optimized OS 69 atau yang lebih baru, Anda dapat memasang persistent disk dari VM host ke dalam container.
Prasyarat
- Disk harus memiliki sistem file
ext4atau tidak memiliki sistem file. Tanpa sistem file awal, agen startup container akan memformat disk menjadiext4. Hanya lampiran baca/tulis dan pemasangan yang didukung. - Disk harus dilampirkan ke VM.
Perangkat maupun partisi tanpa partisi didukung. Untuk pemasangan partisi, disk tidak boleh kosong; disk itu harus berisi tabel partisi yang sudah ada.
Konsol
Buka halaman Create an instance.
Di bagian Container, klik Deploy container.
Di halaman Configure container, lakukan tindakan berikut:
- Tentukan nama image container.
- Di bagian Volume mounts, klik Add volume.
- Dari daftar Volume type, pilih Disk.
- Di kolom Mount path, tentukan jalur di struktur direktori container tempat Anda ingin memasang persistent disk.
- Dari daftar Disk name, pilih disk yang sudah ada untuk dipasang.
- Di kolom Partition, tentukan nomor partisi yang akan dipasang jika disk memiliki tabel partisi. Jika disk tidak memiliki partisi, kosongkan kolom ini.
- Dalam daftar Mode, tentukan apakah akan memasang direktori dalam mode baca/tulis atau hanya baca.
- Untuk mengonfirmasi detail container, klik Select.
Lanjutkan dengan proses pembuatan VM.
gcloud
Gunakan perintah
gcloud compute instances create-with-containeratau perintahgcloud compute instances update-containerdengan flag--container-mount-diskuntuk memasang persistent disk ke dalam kontainer.Contoh berikut memasang dua disk,
my-data-diskdanmy-scratch-disk, ke dalam container di jalur pemasangan/disks/data-diskdan/disks/scratch-disk.gcloud compute instances create-with-container busybox-vm \ --disk name=my-data-disk \ --create-disk name=my-scratch-disk,auto-delete=yes,image=ubuntu-1710-artful-v20180315,image-project=ubuntu-os-cloud \ --container-image docker.io/busybox:1.27 \ --container-mount-disk mount-path="/disks/data-disk",name=my-data-disk,mode=ro \ --container-mount-disk mount-path="/disks/scratch-disk",name=my-scratch-disk
Perlu diperhatikan bahwa flag
--diskmelampirkanmy-data-disk, flag--create-diskmembuat dan melampirkanmy-scatch-disk, dan flag--container-mount-diskmemasang disk yang terpasang ke container. Karenamodetidak ditentukan untukmy-scratch-disk, disk tersebut dipasang ke container dalam mode baca/tulis secara default.Gunakan perintah
gcloud compute instances update-containerdengan flag--container-mount-diskuntuk memasang disk tambahan yang terlampir atau untuk memodifikasi pemasangan disk yang sudah ada.Gunakan flag
--remove-container-mountsuntuk menghapus pemasangan volume disk dengan jalur pemasangan yang ditentukan. Contoh berikut mengubah mode pemasanganmy-data-diskmenjadi baca/tulis dan menghapus pemasangan disk denganmount-path="/disks/scratch-disk".gcloud compute instances update-container busybox-vm \ --container-mount-disk mount-path="/disks/data-disk",name=my-data-disk,mode=rw \ --remove-container-mounts "/disks/scratch-disk"
Jika jalur pemasangan yang Anda teruskan ke flag
--remove-container-mountstidak ada, jalur tersebut akan diabaikan secara diam-diam.Memublikasikan port container
VM dengan container menggunakan mode jaringan host, dengan container berbagi stack jaringan host dan semua antarmuka dari host tersedia untuk container.
Port container memiliki pemetaan one-to-one ke port VM host. Misalnya, port container 80 dipetakan ke port VM host 80. Compute Engine tidak mendukung flag publikasi port (
-p), dan Anda tidak perlu menentukannya agar pemetaan dapat berfungsi.Guna memublikasikan port container, konfigurasikan aturan firewall untuk mengaktifkan akses ke port VM host. Port container yang sesuai dapat diakses secara otomatis, sesuai dengan aturan firewall.
Contoh: Memublikasikan port 80 untuk container NGINX
docker run
Konfigurasi flag
--network="host"saat menggunakan perintahdocker run. Pelajari setelan jaringan container dan mode host lebih lanjut.gcloud
Contoh berikut menunjukkan cara membuat instance VM dengan container NGINX dan mengizinkan traffic ke port 80 container.
Buat instance VM dengan container NGINX:
gcloud compute instances create-with-container nginx-vm \ --container-image gcr.io/cloud-marketplace/google/nginx1:1.15 \ --tags http-server
Container berbagi stack jaringan VM host, dan port 80 container dipublikasikan ke port 80 VM host. Tag
http-serverdigunakan sebagai tag target untuk aturan firewall, yang dibuat pada langkah berikutnya.Buat aturan firewall untuk mengaktifkan koneksi ke port 80 instance VM. Aturan firewall berikut mengizinkan koneksi HTTP ke instance VM dengan tag
http-server.gcloud compute firewall-rules create allow-http \ --allow tcp:80 --target-tags http-server
Container secara otomatis mulai menerima traffic di port 80. Anda tidak perlu melakukan konfigurasi tambahan apa pun.
Anda dapat membuat aturan firewall untuk kombinasi protokol:port VM host dengan protokolnya adalah
tcpatauudp. Aturan ini mengatur akses secara efektif dari luar VM ke port container yang sesuai.
Langkah berikutnya
- Pelajari cara men-deploy container Docker di Compute Engine.
- Pelajari Container-Optimized OS.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-10-19 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-10-19 UTC."],[],[]] -