ما هي طريقة آمنة لوقف الخلية حاوية عامل الميناء?

تشغيل حاوية الخلية باستخدام عامل الميناء. أبدأ مع مثل

sudo docker -d --name mysql -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql mysql_image 

وأظن أن وقف الخلية عن طريق وقف عامل الميناء ليست آمنة. هل انا مخطئ?

sudo docker stop mysql

هل هو أكثر أمانا لوقف الخلية داخل الحاوية الأولى?

sudo docker exec mysql /usr/bin/mysqladmin shutdown

تبدو آمنة ، من المستندات:

العملية الرئيسية داخل الحاوية سوف تتلقى سيغتيرم ، وبعد فترة سماح ، سيغكيل.

حتى إذا كانت العملية الرئيسية هي ميسكلد ، سيكون لها فرصة لائقة لطرد كل شيء.

يبدو وكأنه وقف حاوية عامل الميناء دون اغلاق الخلية داخل يخلق كسر حجم البيانات الخلية. ولذلك فمن الضروري لتشغيل اغلاق الخلية قبل وقف الحاويات من أجل الخلية لطرد كافة التغييرات على القرص.

هذا هو سجل لبدء الخلية على وحدة التخزين ، التي تم إنشاؤها من الحاوية ، توقفت عن طريق عامل الميناء. إيلاء الاهتمام لخطوة الانتعاش تحطم زا موجود.

2021-05-18 06:34:51+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL             Server 8.0.25-1debian10 started.2021-05-18 06:34:54+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'2021-05-18 06:34:54+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.25-1debian10 started.2021-05-18T06:34:54.844455Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.25) starting as process 12021-05-18T06:34:54.887402Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.2021-05-18T06:35:00.523370Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.2021-05-18T06:35:11.094092Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock2021-05-18T06:35:11.181732Z 0 [System] [MY-010229] [Server] Starting XA crash recovery...2021-05-18T06:35:11.198947Z 0 [System] [MY-010232] [Server] XA crash recovery finished.2021-05-18T06:35:11.375917Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.2021-05-18T06:35:11.376529Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.2021-05-18T06:35:11.397202Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.2021-05-18T06:35:11.628776Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.25'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.

عند استخدام

docker exec tu-live-db /usr/bin/mysqladmin -uroot -proot shutdown

قبل قتل حاوية ، زا تحطم الانتعاش لا تبدأ وحجم البيانات صالحة للحاوية القادمة تبدأ معها

2021-05-18 06:36:44+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.25-1debian10 started.2021-05-18 06:36:47+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'2021-05-18 06:36:47+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.25-1debian10 started.2021-05-18T06:36:48.040045Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.25) starting as process 12021-05-18T06:36:48.082740Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.2021-05-18T06:36:53.426493Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.2021-05-18T06:36:57.611953Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock2021-05-18T06:36:57.827561Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.2021-05-18T06:36:57.828060Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.2021-05-18T06:36:57.845291Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.2021-05-18T06:36:58.014550Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.25'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.
  1. الذهاب داخل المضيف الضيف باستخدام محطة الأوامر الخاصة بك

    $ docker exec -it mariadb /bin/sh
  2. انتقل داخل سطر الأوامر

    # mysql -u root -p
  3. الأمر اغلاق قاعدة البيانات داخل هناك.

    > shutdown;

يمكنك التحقق من السجلات من حاوية الخلية

docker container logs mysql

لتأكيد ما إذا كان إجراء إيقاف التشغيل آمنا أم لا

لرؤية السطر الأخير إذا يظهر:

[ملاحظة] الخلية: اغلاق كاملة

يجب أن يكون آمنا