Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan Docker untuk pemulihan kegagalan kontena dan mulakan semula automatik

Cara menggunakan Docker untuk pemulihan kegagalan kontena dan mulakan semula automatik

WBOY
WBOYasal
2023-11-07 16:28:471059semak imbas

Cara menggunakan Docker untuk pemulihan kegagalan kontena dan mulakan semula automatik

Docker, sebagai platform virtualisasi ringan berdasarkan teknologi kontena, telah digunakan secara meluas dalam pelbagai senario. Dalam persekitaran pengeluaran, ketersediaan tinggi dan pemulihan kegagalan automatik bekas adalah penting. Artikel ini akan memperkenalkan cara menggunakan Docker untuk pemulihan kegagalan kontena dan mula semula automatik, termasuk contoh kod tertentu.

1. Konfigurasi permulaan semula bekas automatik

Dalam Docker, fungsi mula semula automatik bekas boleh didayakan dengan menggunakan pilihan --mulakan semula semasa menjalankan bekas. Pilihan biasa ialah:

  • tidak: Jangan mulakan semula secara automatik. Pilihan lalai;
  • selalu: sentiasa mulakan semula secara automatik;
  • pada kegagalan: dimulakan semula secara automatik apabila bekas keluar kerana status bukan 0
  • melainkan dihentikan: sentiasa mulakan semula secara manual.

Berikut ialah contoh mendayakan semula kontena automatik dengan menggunakan pilihan --restart:

docker run -d --restart always nginx

Dalam contoh ini, kami memulakan bekas Docker bernama nginx dan Konfigurasikan bekas untuk sentiasa mulakan semula secara automatik melalui pilihan --restart.

Perlu diingat bahawa pilihan --restart hanya akan berkuat kuasa apabila bekas keluar kerana kegagalan. Jika bekas dihentikan secara manual, ia tidak akan dimulakan semula secara automatik. Jika anda masih mahu mendayakan mula semula automatik selepas bekas dihentikan secara manual, anda boleh menggunakan pilihan kecuali dihentikan.

2. Konfigurasi pemulihan kegagalan kontena

Dalam Docker, pemulihan kegagalan kontena biasanya merujuk kepada menggunakan alatan pengurusan kelompok seperti Docker Swarm untuk menjadualkan semula kontena secara automatik untuk memastikan ketersediaan perkhidmatan. Berikut ialah contoh yang menunjukkan cara mengkonfigurasi failover automatik dalam Docker Swarm:

  1. Buat kluster Docker Swarm:

docker swarm init

  1. Buat perkhidmatan dalam kluster:
ngx buat --namedocker service --replicas 3 nginx

Dalam contoh ini, kami mencipta perkhidmatan yang dipanggil nginx dan menetapkan bilangan replikanya kepada 3.

    Dayakan pemulihan kegagalan dalam perkhidmatan:
kemas kini perkhidmatan docker --update-delay 10s --update-parallelism 2 --update-failure-action restart nginx

Pilihan --update-delay dinyatakan di sini Kelewatan masa antara operasi kemas kini; pilihan --update-parallelism menentukan bilangan kejadian serentak untuk setiap kemas kini pilihan --update-failure-action menentukan tindakan yang perlu diambil apabila kemas kini gagal, di sini kami menetapkannya untuk memulakan semula bekas; .

Perlu diingat bahawa fungsi pemulihan kerosakan hanya boleh berkuat kuasa apabila menggunakan alat pengurusan kluster seperti Docker Swarm. Jika anda menggunakan arahan docker run secara langsung untuk memulakan bekas, maka kami hanya boleh menggunakan pilihan --restart untuk memulakan semula bekas secara automatik.

3. Contoh kod untuk pemulihan kegagalan kontena dan mula semula automatik

Berikut ialah contoh kod lengkap yang menunjukkan cara melaksanakan pemulihan kegagalan kontena dan mula semula automatik dengan menggunakan pilihan --restart dan alatan pengurusan kluster seperti Docker Swarm:

    Buat gugusan Docker Swarm bernama docker-demo:
docker swarm init --advertise-addr 127.0.0.1

    Buat perkhidmatan bernama nginx dalam gugusan dan tetapkan bilangan replikanya kepada 3
  1. Setiap replika perkhidmatan docker create --name nginx --replicas 3 nginx

Dayakan pemulihan kegagalan dalam perkhidmatan:
  1. kemas kini perkhidmatan docker --update-delay 10s --update-parallelism 2 --update- failure-action restart nginx

Setelah menunggu seketika, hentikan bekas secara manual:
  1. hentian kontena buruh pelabuhan

Selepas menunggu seketika, semak sama ada bekas itu dimulakan semula secara automatik:

bekas itu bekas dimulakan semula secara automatik, statusnya sepatutnya berjalan.

Perlu diingat bahawa kaedah pelaksanaan khusus pemulihan kegagalan kontena dan mula semula automatik adalah berbeza, dan senario berbeza memerlukan kaedah berbeza untuk dilaksanakan. Contoh di atas adalah untuk rujukan sahaja, dan pelaksanaan khusus perlu diselaraskan mengikut situasi sebenar.

Ringkasan

Pemulihan kegagalan kontena dan mula semula automatik adalah cara penting untuk memastikan ketersediaan kontena Docker yang tinggi. Dengan mengkonfigurasi fungsi mula semula automatik dan pemulihan kegagalan Docker dengan betul, anda boleh mengurangkan masa gangguan perkhidmatan yang disebabkan oleh kegagalan kontena dengan berkesan. Artikel ini menerangkan cara menggunakan pilihan --restart dan alatan pengurusan kluster seperti Docker Swarm untuk melaksanakan pemulihan kegagalan kontena dan fungsi mula semula automatik dan menyediakan contoh kod khusus. Saya harap artikel ini dapat membantu semua orang apabila menggunakan Docker.

Atas ialah kandungan terperinci Cara menggunakan Docker untuk pemulihan kegagalan kontena dan mulakan semula automatik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn