Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan bekas Docker untuk dijalankan tanpa keluar

Cara menggunakan bekas Docker untuk dijalankan tanpa keluar

PHPz
PHPzasal
2023-04-20 10:09:235487semak imbas

Docker ialah platform kontena sumber terbuka yang menyediakan persekitaran yang membolehkan pembangun membungkus aplikasi dan semua kebergantungan mereka ke dalam bekas mudah alih untuk penggunaan dan pengurusan. Kelebihan bekas Docker ialah ia pantas, ringan, mempunyai pengasingan yang kuat dan mudah alih. Walau bagaimanapun, dalam aplikasi sebenar, kami sering memerlukan ciri yang tidak keluar dari bekas Docker serta-merta selepas dijalankan untuk memastikan perkhidmatan kami berjalan dengan normal dan stabil.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan bekas Docker untuk dijalankan tanpa keluar.

1. Gunakan kaedah Bash untuk melaksanakan bekas tanpa keluar

Gunakan kaedah Bash untuk melaksanakan bekas Docker tanpa keluar Anda perlu menjalankan arahan berikut:

docker run -it --name=容器名称 --restart=always 镜像名称 /bin/bash

Dalam arahan ini, Kami menetapkan mod permulaan bekas Docker sebagai terminal interaktif, dengan nama 容器名称, dan tetapkan 容器名称 sebagai nama permulaan lalai selepas dimulakan semula, yang memastikan bekas tidak akan keluar secara tidak normal dan tidak dapat memulihkan dirinya sendiri. Dan --restart=always digunakan untuk menyatakan bahawa apabila bekas Docker ranap atau berhenti, bekas itu harus dimulakan semula dan Docker akan memulakan semula bekas secara automatik. 镜像名称 akhir merujuk kepada imej yang harus digunakan untuk memulakan bekas.

2. Gunakan skrip Python untuk menghalang bekas daripada keluar

Selain menggunakan Bash, kami juga boleh menggunakan skrip Python untuk menghalang bekas Docker daripada keluar. Di bawah ialah skrip Python:

import time
while True:
    time.sleep(60)

Kami menyimpan kod ini sebagai fail run.py dan menambah baris berikut dalam Dockerfile:

CMD python /app/run.py

Seterusnya, kami menggunakan docker build Perintah untuk membina Fail Docker sebagai imej, dan kemudian gunakan arahan berikut untuk menjalankan bekas:

docker run -d --restart=always 镜像名称

Dalam arahan ini, kami menentukan bahawa bekas Docker akan dimulakan dalam mod latar belakang dan nama imej ialah imej yang dibina sebelum ini. --restart=always juga digunakan untuk menyatakan bahawa apabila bekas Docker ranap atau berhenti, bekas itu harus dimulakan semula.

3. Gunakan Penyelia untuk menghalang bekas daripada keluar

Penyelia ialah pengurus proses yang boleh digunakan untuk memantau dan mengawal proses yang berjalan dalam bekas Docker. Penyelia membenarkan anda melakukan pemeriksaan kesihatan pada proses dalam bekas dan memastikan ia terus berjalan, dimulakan semula secara automatik walaupun proses ranap.

  1. Pertama, kita perlu menambah baris berikut pada Dockerfile untuk memastikan Penyelia berjalan dengan betul apabila bekas bermula:
RUN apt-get update && apt-get install -y supervisor
RUN systemctl enable supervisor
ADD supervisor.conf /etc/supervisor/conf.d/
  1. Seterusnya, kita perlukan Mentakrifkan fail konfigurasi supervisor.conf, yang mentakrifkan proses yang perlu dipantau dan cara menjalankannya. Berikut ialah versi ringkas fail supervisor.conf:
[supervisord]
nodaemon=true

[program:your_application_name]
command=/bin/bash -c "while true; do echo hello world; sleep 10; done"

Dalam fail konfigurasi ini, kami mentakrifkan program bernama your_application_name dan menentukannya untuk dilaksanakan dengan arahan /bin/bash , Jalankan perintah echo hello world; sleep 10; dalam gelung tak terhingga.

  1. Akhir sekali, apabila bekas bermula, anda perlu menggunakan arahan berikut untuk memulakan Penyelia:
/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf

Dalam arahan ini, kami lulus -n parameter kepada proses Penyelia Tetapkan untuk dijalankan di latar depan. Pada permulaan, Penyelia mengesan semua fail konfigurasi dalam direktori /etc/supervisor/conf.d/ dan menggunakannya untuk mengurus proses dalam bekas.

Kesimpulan

Dalam artikel ini, kami telah memberikan tiga kaedah untuk merealisasikan ciri menjalankan bekas Docker tanpa keluar, termasuk menggunakan kaedah Bash, skrip Python dan pengurus proses Penyelia. Setiap kaedah mempunyai kelebihan dan skop penggunaannya Dalam aplikasi praktikal, kaedah yang sesuai perlu dipilih berdasarkan situasi tertentu. Kami berharap artikel ini membantu anda dan memberikan jaminan yang lebih baik untuk pengendalian bekas Docker anda.

Atas ialah kandungan terperinci Cara menggunakan bekas Docker untuk dijalankan tanpa keluar. 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