All Products
Search
Document Center

CloudOps Orchestration Service:Penerapan citra Docker

Last Updated:Dec 16, 2025

Gunakan jenis penerapan ini untuk memublikasikan aplikasi dari citra Docker yang disimpan dalam instans Container Registry (ACR) Edisi Perusahaan.

Untuk menerapkan dari Edisi Personal ACR atau repositori citra pihak ketiga, gunakan penerapan berbasis perintah saja.

Cara kerja

Penting
  • Jika Anda menerapkan ke grup penskalaan ESS, aktivitas penskalaan dijeda selama penerapan dan secara otomatis dilanjutkan setelah penerapan selesai, baik berhasil maupun gagal.

  • Proses penerapan pertama-tama menghentikan versi lama, lalu menjalankan versi baru. Setiap penerapan menjalankan skrip stop sebelum skrip start.

  • Citra Docker secara otomatis ditarik ke instans Elastic Compute Service (ECS) selama penerapan. Jangan sertakan perintah pull citra dalam skrip start.

  1. Buat dan publikasikan penerapan.

    Konfigurasikan file sumber aplikasi, skrip start, dan skrip stop untuk penerapan.

    Buat tugas rilis, pilih mode rilis, lalu publikasikan penerapan ke kelompok aplikasi target.

  2. Alur penerapan otomatis.

    1. Mengambil informasi penerapan, termasuk detail citra Docker serta skrip start dan stop aplikasi.

    2. Menarik citra Docker dari repositori citra ke instans ECS.

    3. Menjalankan skrip stop untuk menghentikan versi lama aplikasi.

    4. Menjalankan skrip start untuk menjalankan versi baru aplikasi.

Lingkup

  • Penerapan hanya didukung pada instans Linux.

  • Skrip start dan stop harus berupa skrip Shell.

Prosedur

  1. Persiapkan aplikasi, kelompok, dan instans ECS.

    Sebelum menerapkan, buat aplikasi dan kelompok di ECS Application Management, lalu tambahkan instans ECS Anda ke kelompok tersebut.

    1. Jika belum memiliki instans ECS, buat satu yang menjalankan sistem operasi Linux melalui halaman Konsol ECS - Custom Launch.

      Disarankan menggunakan citra ECS Alibaba Cloud Linux 3.2104 LTS 64-bit atau Ubuntu 22.04 64-bit. Skrip pada contoh berikut didasarkan pada kedua citra ini. Jika menggunakan citra berbeda, sesuaikan skripnya sesuai kebutuhan.
    2. Buka halaman Konsol ECS - Application Management, klik Create from Existing Resources, buat aplikasi dan kelompok aplikasi, lalu impor instans ECS ke dalam kelompok aplikasi.

    3. Instal Docker pada instans ECS dalam kelompok tersebut. Pada tab O&M kelompok aplikasi, pilih ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL untuk menginstal Docker secara batch.

      Jika instans ECS Anda dibuat dari custom image, Anda tidak dapat menginstal ekstensi dengan cara ini. Anda harus terhubung secara remote ke instans tersebut dan menginstal Docker secara manual.
  2. Buat penerapan citra Docker.

    1. Tarik contoh citra ke mesin lokal Anda, lalu dorong citra tersebut ke repositori instans ACR Edisi Perusahaan Anda.

      docker pull aliyun-computenest-opensource-registry.cn-hangzhou.cr.aliyuncs.com/default/aliyun-code-deploy:latest
    2. Buka halaman Konsol ECS - Application Management. Pada tab My Applications, klik nama aplikasi target.

    3. Pada halaman produk aplikasi, pilih tab Deployment, lalu klik Create Deployment.

    4. Pada halaman Create Deployment, atur RevisionType ke Docker Image, lalu konfigurasikan parameter kunci berikut.

      • Informasi instans ACR: Masukkan detail instans ACR Edisi Perusahaan Anda. Setelah memasukkan versi citra, sistem akan secara otomatis menghasilkan Registry Address. Gunakan alamat ini dalam skrip start aplikasi.image

      • Working directory: Direktori eksekusi untuk skrip start dan stop aplikasi. Contoh: /root/deploy.

      • Skrip start aplikasi: Ganti <Registry Address> dengan alamat aktual.

        ### Citra Docker secara otomatis ditarik ke instans ECS selama penerapan. Anda dapat langsung menjalankan kontainer.
        ### Jalankan versi saat ini dari kontainer
        function start_application() {
          image_name="<Registry Address>"
          container_name="my-container"
          docker run -d -p 8080:8080 --name ${container_name} ${image_name}
        }
        
        start_application
      • Skrip stop aplikasi:

        function stop_application() {
          # Periksa apakah kontainer ada berdasarkan nama kontainer, dan hapus kontainer jika ada
          container_name="my-container"
          container_id=$(docker ps -aq -f name=${container_name}) 
          if [ -n "$container_id" ]; then
            docker rm -f $container_id
          fi
        }
        
        stop_application
    5. Setelah mengonfigurasi semua parameter, klik OK untuk menyimpan penerapan.

  3. Kembali ke daftar penerapan. Temukan penerapan yang telah Anda buat dan klik Publish. Pilih kelompok target, lalu klik OK untuk memulai penerapan.

  4. Verifikasi hasilnya.

    1. Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk pada halaman untuk login ke terminal.

    2. Jalankan perintah curl http://localhost:8080/hello. Nilai kembali Alibaba Spring Sample! menunjukkan bahwa penerapan berhasil.

Bidang kunci

Field

Description

Container Registry region

Wilayah tempat instans ACR Edisi Perusahaan berada.

Container Registry instance ID

ID instans ACR Edisi Perusahaan

Namespace

Namespace tempat repositori citra berada.

Repository name

Nama repositori citra.

Image version

Versi citra Docker yang akan diterapkan.

Pull image over private network

Jika Anda memilih untuk menarik citra melalui jaringan pribadi, pastikan instans ACR dan instans ECS berada dalam virtual private cloud (VPC) yang sama. Anda juga harus telah mengonfigurasi kontrol akses untuk VPC.
Jika tidak, citra akan ditarik melalui Internet. Dalam kasus ini, pastikan instans ECS dan instans ACR telah dikonfigurasi untuk akses jaringan publik.

Working directory

Direktori kerja untuk skrip start dan stop aplikasi.

  • Masukkan jalur mutlak.

  • Anda dapat memasukkan direktori yang belum ada. Direktori tersebut akan dibuat secara otomatis selama eksekusi.

Application start script

Skrip Shell yang digunakan untuk menjalankan aplikasi.

Application stop script

Skrip Shell untuk menghentikan aplikasi.
Skrip harus dapat menghentikan versi aplikasi saat ini dan sebelumnya dengan benar. Saat tidak ada aplikasi yang berjalan, skrip juga harus keluar secara normal tanpa error.

Sebagai contoh, skrip berikut menghentikan kontainer bernama my-container. Skrip ini mengasumsikan bahwa setiap versi kontainer memiliki nama yang sama. Skrip tidak menghasilkan error jika kontainer tidak ada:

container_name="my-container"
container_id=$(docker ps -aq -f name=${container_name}) 
if [ -n "$container_id" ]; then
  docker rm -f $container_id
fi