Table of Contents
কেন উৎপাদনশীল ডিপ্লোমা সংক্রান্ত ডকার সঙ্গে কনবিন সিস্টেম
আধুনিক অবকাঠামোগুলো দাবি করে যে কন্টেইনার সার্ভিস অপ্রত্যাশিতভাবে রিগ্রেশন, হার্ডওয়্যার বিপর্যয়, হার্ডওয়্যার আপডেট অথবা প্যাকেজ আপডেটে টিকে থাকতে পারে। যখন ডকার ([[[[[[FFRP] চালু করার নীতি সরবরাহ করে, এই নীতি শুধুমাত্র তখনই শুধুমাত্র ডকারের ডেমন চালানো হবে। সিস্টেমের ব্যবহার করে উবুন্টু, ডি. এস. এস. এস. এস. আই., লিনাক্স, লিনাক্স, এবং আধুনিক বিতরণ ব্যবস্থা দ্বারা ব্যবহৃত হয়।
- নির্ভরতার নির্দেশের পর, (যেমন, নেটওয়ার্ক,) স্বয়ংক্রিয় ভাবে সংযোগ করার পর, নির্ভরতার ভিত্তিতে প্রারম্ভিক আদেশ জারি করা হয়েছে।
- [FLT], ডিবাগ বার্তা প্রেরণ করুন [F]
- রিসোর্সের সীমা অনুযায়ী চমৎকার/পরিবারাক কন্ট্রোল (CPU, মেমরি, I/OPI)
- স্বয়ংক্রিয়ভাবে অনুরোধ করার ফলে স্বয়ংক্রিয়রূপে স্পিন ব্যবস্থা পুনরায় আরম্ভ করতে ব্যর্থ
- সকেট সক্রিয়করণ এবং আরম্ভের সময় সহায়তা
সিস্টেম সার্ভিস ফাইল- এ প্রত্যেক ডকার কন্টেইনারকে জোড়া লাগিয়ে অপারেশন দল শুরু, থামা, পর্যবেক্ষণ করা, সীমাবদ্ধ স্ক্রিপ্টের উপর নির্ভরতা এবং হস্তক্ষেপের উপর চাপ কমিয়ে দেয়।
একটি ডকার ধারণকারী সিস্টেমের জন্য একটি পদ্ধতি নির্মাণ করা হচ্ছে
এর পরিবর্তে, আমরা ধাপের মধ্যে দিয়ে হেঁটে যাব, একটা মৌলিক উদাহরণ দিয়ে শুরু করি এবং তারপর সাধারণ উৎপাদন চাহিদা তুলে ধরি ।
ধাপ ১:
[[[F]] এই নামে একটি ফাইল তৈরি করো: 2) নিম্নোক্ত টেমপ্লেটটি একটি বিন্দু হিসেবে ব্যবহার করো:
[Unit]
Description=My Application Container
After=network-online.target docker.service
Wants=network-online.target
Requires=docker.service
[Service]
Restart=always
RestartSec=10
StartLimitBurst=3
ExecStartPre=-/usr/bin/docker kill myapp
ExecStartPre=-/usr/bin/docker rm myapp
ExecStart=/usr/bin/docker run --rm --name myapp \
-e DB_HOST=10.0.1.50 \
-e DB_PORT=5432 \
-v /data/myapp:/app/data \
-p 8080:8080 \
myregistry/myapp:latest
ExecStop=/usr/bin/docker stop -t 10 myapp
ExecStopPost=-/usr/bin/docker rm myapp
[Install]
WantedBy=multi-user.target
[[F] কী- এর নির্দেশসমূহ বিস্তারিত:[F] [FLT]
- [[[F][F][FLT][F][FFLT] [FLT] - p[F] - http:1] -sper ডেমন চালু করার পূর্বে চলছে।
- [[F][F][FLT][F][F][F][F]][F]] - যদি ডকার বন্ধ থাকে, এই সার্ভিস বন্ধ করে দেওয়া হয়।
- [[[F][F][F][F][F]][F]], পূর্ববর্তী কোনো রান থেকে যে কোনো অবশিষ্ট অবশিষ্ট অংশ পরিষ্কার করা হয় ([FO] IR:] ব্যর্থতার অর্থ হল value]
- [[[F][F][FLT][F][F][F][FLT][F][F]] -[FO] ব্যবহার করে [FLT] ব্যবহার করুন [FO[FLT] যখন বন্ধ করা হয় ।
- [[[[F][F][F][F][F][F]] - [F] - ১:] - অল্প সময়ের জন্য কনটেইনার বন্ধ করে দেওয়া হয় (১০ সেকেন্ড)
- [[[F][FLT][FLT][FLT][FLT] [FLT] - প্রবেশের পদ্ধতিগুলি পুনঃলিখন করা হয়।
- [[[[[[[][F][F][F][F][F]][F][F]] - ১:] - ১০ সেকেন্ড জন্য অপেক্ষা করুন।
- [[F][[F][F][F][F][F][F]][F]][ ১]] - প্রতি সেকেন্ডে সীমা নির্দেশ করে প্রতি সেকেন্ডে ৩ (ডিফল্ট মান পুনরায় লুপ বন্ধ করে দেয়) ।
২:২) সক্রিয় করুন ও আরম্ভ করুন
sudo systemctl daemon-reload
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
[[[[F]] সিস্টেম পুনরায় পাঠের ফাইল নির্মাণ করতে বলা হয় । [FFLT] এর মাধ্যমে সিম-লিংক নির্মাণ করা হয় যাতে এই সার্ভিসটি বুটের মধ্য দিয়ে আরম্ভ হয় ।
প্রমিত System System Logd কমান্ড সহযোগে পরিসেবা পরিচালনা করা হচ্ছে
একবার যদি সার্ভিসটি চলছে, তাহলে অন্য যে কোন সিস্টেম সার্ভিসের মতো এটাকে নিয়ন্ত্রণ করবে:
- [[[[F][F][F][F] [F] [F]
- [[F] বন্ধ করুন:[F] [F] [F]
- [[[F]R][FLT] [F] [FLT]
- [[F] অবস্থা:[F][F] [F] [F]
- [[F] লগ]:L [FLT] [FLT] [FLT] [FLT] [FLT] [FL] [FL]
উন্নত কনফিগারেশনের বিন্যাস
নীচে দেওয়া বিষয়গুলো সাধারণ ।
পরিবেশ ভেরিয়েবল
সার্ভিস ফাইলের মধ্যে গোপন অথবা কনফিগারেশন ফাইল উপস্থিত থাকলে সংশ্লিষ্ট প্লাগ- ইনটি সম্ভবত অনুমোদিত নয়। এর পরিবর্তে একটি পৃথক এনভায়রনমেন্ট ফাইল ব্যবহার করুন:
[Service]
EnvironmentFile=-/etc/myapp/env.conf
ExecStart=/usr/bin/docker run --rm --name myapp \
--env-file /etc/myapp/env.conf \
myregistry/myapp:latest
[[[F] পাথ: 1951 WOPL [F] পাথের পূর্বে সার্ভিস আরম্ভ করা হবে, এমনকি যদি ফাইলটি বিদ্যমান না থাকে (প্রথম সেটআপের সময়)
নেটওয়ার্ক ও পোর্ট বাইন্ডিং
netlink [FLT] অথবা ব্যবহারকারীদের দ্বারা বিভাজিত সেতু নেটওয়ার্ক ব্যবহার করার জন্য, যে জন্য একই হোস্টের মধ্যে পরস্পরের সাথে যোগাযোগ করা প্রয়োজন। উদাহরণ: উদাহরণ:
ExecStart=/usr/bin/docker run --rm --name web \
--network=my-net \
-p 443:443 \
-v /etc/ssl/certs:/etc/ssl/certs:ro \
myregistry/web:latest
যদি একটি স্বনির্ধারিত নেটওয়ার্ক ব্যবহার করে, সার্ভিস আরম্ভ করার পূর্বে নেটওয়ার্কগুলি নিশ্চিত করুন। [F7:] আপনি এটি নির্মাণ করতে পারেন:
ExecStartPre=/usr/bin/docker network create my-net
ইন্টার-reterner নির্ভরতা
কোনো কনটেইনারার আরম্ভের পূর্বে প্রস্তুত হওয়ার জন্য একটি নতুন প্যাকেজ (যেমন, একটি ডাটাবেসের জন্য অপেক্ষা করা হচ্ছে) প্রয়োজন । সিস্টেম দ্বারা এই নির্দেশ প্রয়োগ করা যেতে পারে, ডাটাবেসের জন্য একটি দ্বিতীয় সার্ভিস ফাইল নির্মাণ করা হবে এবং তারপর:
[Unit]
Description=Web App Container
After=network-online.target docker.service mydb.service
BindsTo=mydb.service
[[FLT] ওয়েব অ্যাপ্লিকেশনের লাইফ সাইকেলে প্রবেশ করুন - ডাটাবেস বন্ধ হলে ওয়েব অ্যাপ্লিকেশনটি বন্ধ হয়ে যাবে।
স্বাস্থ্যের উন্নতি এবং পাঠ
ডকার স্বাস্থ্য পরীক্ষা অ-প্রতিক্রিয়া রোধ করার জন্য সিস্টেমের সঙ্গে যুক্ত হতে পারে । [এফএল] [এফএল] ব্যবহার করুন এমন একটি স্ক্রিপ্ট ব্যবহার করুন যা স্বাস্থ্যের ভোট শেষ হয়:
ExecStartPost=/usr/local/bin/wait-for-health.sh http://localhost:8080/health 30
স্ক্রিপ্টটি শুধুমাত্র সুস্থ অবস্থায় থাকলে স্ক্রিপ্টটি বন্ধ হয়ে যাবে । এটি ব্যর্থ হলে সিস্টেমের একক চিহ্ন হিসেবে অপরিবর্তিত থাকবে ।
সিস্টেমের মাধ্যমে রিসোর্স সীমা
কোনো একক হোস্ট- এর মধ্যে একাধিক কনটেইনার ব্যবহার না করে আপনি একটি সি. ডি. এম. - এর নিজস্ব রিসোর্সের ফ্ল্যাগ ছাড়া একটি কনটেইনারেট CPU- এর ব্যবহার ও মেমরি বরাদ্দ করতে পারেন । এটি বিশেষভাবে কার্যকর:
[Service]
MemoryMax=512M
CPUQuota=50%
এই বৈশিষ্ট্য ডকারের স্বাধীনভাবে কাজ করা সিস্টেমের সীমা তৈরি করে ।
পরিচালনাকারী একাধিক কনটেইনার: সিস্টেম বনাম ডকার
কিন্তু, যখন একটা প্রকল্প আরও বেশি কার্যকর হয়, ডকার তৈরির জন্য আপনি এখনও একটা সার্ভিস তৈরি করতে পারেন যেটা একটা একক সার্ভিস তৈরি করে । [এফ.
[Unit]
Description=My Application Stack
After=network-online.target docker.service
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/myapp
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
[Install]
WantedBy=multi-user.target
এই পদ্ধতি আপনাকে সিস্টেমের লাইফসাইকেল ম্যানেজমেন্টের সঙ্গে মিলে সাধারণ আচরণ করার জন্য যথেষ্ট মান দেবে । লক্ষ করুন [[FF3:] [FO:[F8] প্রস্থানের জন্য [F8:] [F8] [L]] [F8]] [L]] সঙ্গে সংযোগ স্থাপন করো] [F8] [F]] [F]] [D [F]]] [F]]] [D]]] [D [D]]] একটি "b]]]]]] নির্দেশ করা না যতক্ষণ না একটি “নিদ্রাকে গোপন অবস্থায় পাওয়া যায় ”
কোন পদ্ধতিতে আপনাকে বেছে নিতে হবে?
- [[F] [F] [FLT] - এর জন্য সর্বোত্তম উপায় [FLT] - লিগ্যাসি অ্যাপ্লিকেশন, কঠোর প্রারম্ভিক অনুক্রমের সাথে উপলব্ধ করার জন্য অতিরিক্ত অনুক্রমের সাথে উপলব্ধ করা হয় অথবা যখন প্রয়োজন বোধ করো ।
- [[[F] [F][F][F]] - LAN[F] - ১] - মাইক্রো- তরঙ্গের তরঙ্গের জন্য আদর্শ হিসেবে নির্ধারিত, যেখানে কিনা অভ্যন্তরীণভাবে ধারণকৃত শর্তগুলো সাধারণভাবে পরিচালনা করে এবং আপনি একটি একক ইউনিট চান ।
সমস্যার সমাধান
এমনকি সতর্কভাবে প্রস্তুত থাকুন, আপনি হয়তো বিভিন্ন সমস্যার মুখোমুখি হতে পারেন ।
সার্ভিস ব্যর্থ হয়েছে "আয়কনার ডেমনের সাথে সংযোগ স্থাপন করতে ব্যর্থ
এর মানে সাধারণত: ডকার সকেটের পূর্বে সার্ভিস আরম্ভ করা হয় । নিশ্চিত করুন যে আপনার ইউনিট আছে [FL] এবং[FFLT] [FLT] । এছাড়াও পরীক্ষা করুন যে ডকার ডিমন সক্রিয় করা হয়েছে: [F]
চক্র পুনরায় আরম্ভ করা হয়
যদি কনার প্রস্থান করে, সিস্টেম [FLT] এবং [FLT] অনুযায়ী পুনরায় আরম্ভ করা হবে। fFLT[FLT] [FL] [FL] [FL]] [FL]:] [FL]:] [FL], ৩০, ৩০ সেকেন্ড] এবং [F] একটি ব্যস্ত চক্র নির্ধারণ করুন [F] [F] [F] [F]:L]] [F]] [F]] [F]], এর জন্য একটি ব্যস্ত লুপ নির্ধারণ করুন [F]]
সেবাকে পরিষ্কার - পরিচ্ছন্ন রাখা উচিত নয়
একটি ভুল কনফিগার করা [[FLT] যদি আপনি [[[F] [[FLT] ব্যবহার করেন, ফাইল spits: 111], root বিষয়- সিস্টেম দ্বারা উদ্ধৃত করা সমস্ত output । গুপ্ত ই- মেইল ঠিকানার ক্ষেত্রে, চিহ্নিত মান অথবা একটি গোপন ব্যবস্থাপক ব্যবহার করে বিবেচনা করুন । সিস্টেমের মাধ্যমে চলমান ডকার কন্টেইনার কয়েকটি নিরাপত্তা পয়েন্ট তুলে ধরেছেন: আরো পড়ার জন্য এই সরকারি তথ্য আলোচনা করুন: ডকার কন্টেইনার সিস্টেম দ্বারা চালিত হওয়া সিস্টেম আপনাকে একটি ডাকাতিকারী, অটোম্যাল স্টার্টিং প্রক্রিয়া দেয় যা আপনার লিনাক্স সিস্টেমের বাকি সকল সিস্টেমের সঙ্গে সুসংগতভাবে সমন্বয়সাধন করে । ভালভাবে লিখতে পারে, নির্ভরতার জন্য সংরক্ষিত সার্ভিস ইউনিট, স্থায়ীভাবে চালু, রিসোর্সের সীমা নির্ধারণ, এবং পর্যবেক্ষণ, ফাইল চালু করা, এবং পপ- আপিং সিস্টেমের জন্য প্রয়োজনীয় সকল একক ইতিমধ্যেই নির্বাচন করা যাবে । আপনি জানেন যে একটি পৃথক দল বেছে নিতে পারবেন । সহজ একক ফাইল দিয়ে শুরু করুন, তারপর এটি পরীক্ষা করুন, তারপর পরিবেশ, স্বাস্থ্য এবং নিরাপত্তা সংক্রান্ত উন্নতির ওপর স্তর যেমন, এই পদ্ধতি সহ ustanders লেখা, ক্র্যাশ, ক্র্যাশ এবং কনফিগারেশন পরিবর্তন প্রতিরোধ করতে সাহায্য করবে । এনভায়রনমেন্ট ভেরিয়েবল লোড করা হয়নি
নিরাপত্তা সংক্রান্ত বিবেচনা
[Service]
ProtectSystem=strict
ReadWritePaths=/var/log/myapp
PrivateTmp=true
User=myappuser বহিস্থিত রিসোর্স
অন্তর্ভুক্ত