একটি ডকারের ধারক (আর্চ লিনাক্স) এর ভিতরে সিস্টেমড চালানো


12

আমি দেখার চেষ্টা করছি যে আমি কোনও ডকার পাত্রে (যা ধারকটিতে আর্চ লিনাক্স চলছে) ভিতরে সিস্টেমড চালাতে পারি কিনা run

আমি সমস্ত ক্ষমতা দিয়ে ডকার শুরু করি এবং সিগ্রুপগুলিতে মাউন্ট বাঁধাই:

docker run -it --rm --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro ..

তবে, যদি আমি সিস্টেমড বাইনারি চালানোর চেষ্টা করি:

Trying to run as user instance, but the system has not been booted with systemd.

সিস্টেমটি সঠিকভাবে কীভাবে জিনিস শুরু করবেন তা জানার চেষ্টা করা হচ্ছে।


systemdমানুষ পৃষ্ঠাটি একটি ভাল জায়গা থেকে শুরু হবে। গুগল ডকারের অধীনে সিস্টেমড চালানো সম্পর্কে বেশ কয়েকটি নিবন্ধও দেয়।
larsks

আপনি সিস্টেমড প্রয়োজন কেন ব্যাখ্যা করতে পারেন?
030

উত্তর:


4

ডকার পাত্রে সিস্টেমেড চালনার জন্য , হোস্ট সিস্টেমটি অবশ্যই সিস্টেমড চালাতে হবে। এর অর্থ আপনি উবুন্টুকে হোস্ট হিসাবে ব্যবহার করতে পারবেন না। এই মুহুর্তে আমি সেই কাজের জন্য কেবলমাত্র হোস্ট বিতরণগুলি হলাম ফেডোরা (যা উবুন্টুর বিপরীতে ডকারের সর্বশেষ সংস্করণ রয়েছে) বা আরএইচএল 7।


4
আর্ক লিনাক্স সিস্টেমড ব্যবহার করে uses
জেসন অ্যান্টম্যান

8
16.04 হিসাবে উবুন্টু ডিফল্টরূপে সিস্টেমেড ব্যবহার করে
স্কট স্টেনসল্যান্ড landগস্ট

4

এখানে আমার মাস্টার পাইস: ডি উবুন্টু সহ একটি ডকারের ধারকের ভিতরে সিস্টেমড চালাচ্ছে: ডি আমি উবুন্টু ডকারের অভ্যন্তরে সিস্টেমডের সাথে কাজ করছি

আমার ডকার-সিস্টেমযুক্ত ধারকটির জন্য গিটহাব রেপো

$ docker run -it --cap-add SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro dockerimages/docker-systemd

আউটপুট:

systemd 218 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
Detected virtualization 'docker'.
Detected architecture 'x86-64'.

Welcome to Ubuntu Vivid Vervet (development branch)!

Set hostname to <502ec40509a5>.
[  OK  ] Created slice Root Slice.
[  OK  ] Created slice System Slice.
         Starting Emergency Shell...
[  OK  ] Started Emergency Shell.
Startup finished in 5ms.
Welcome to emergency mode! After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" or ^D to
try again to boot into default mode.
root@502ec40509a5:~# exit

6
প্রযুক্তিগতভাবে এটি কাজ করে, তবে এটি করার জন্য আপনাকে ধারকটির সুরক্ষা ভঙ্গ করতে হয়েছিল। এটি উত্পাদন স্থাপনার জন্য উপযুক্ত নয়।
মাইকেল হ্যাম্পটন

আজ কম সুরক্ষা পতাকা সহ আরও সহজেই সম্ভব
google-frank-dspeed

2

বর্তমানে সিস্টেমেড ডক পাত্রে সঠিকভাবে চালিত হয় না, পুরো কারণগুলির সঠিক কারণে, যেমন সঠিক সুযোগ-সুবিধার অভাবে। আপনি ডকর প্রজেক্টের বিভিন্ন গিথুব ইস্যুতে ডকর আর্চ কনটেইনার হ্যাং বা সেগফোল্টস এবং ইন / প্রসেস মনিটরিং সম্পর্কিত সম্পর্কিত ইস্যুতে চালিত সিস্টেমের মতো চলতে পারেন । (আমি এখানে আরও ইস্যু লিঙ্ক করতে চাই, তবে সম্ভবত আমার যথেষ্ট খ্যাতি নেই)।

আপনি দেখতে পাচ্ছেন, এটি এমন একটি বিষয় যা বর্তমানে কাজ করা হচ্ছে এবং আচরণ উন্নত করতে ইতিমধ্যে কয়েকটি প্যাচ একত্রীকরণ করা হয়েছে, যাতে আমরা এটি শিগগিরই কাজ করার আশা করতে পারি।

স্পষ্টতই কিছু বিকাশকারী এটি ইতিমধ্যে ফেডোরা সিস্টেমে চালিত করার ব্যবস্থা করেছিল, যেমন তারা তাদের ব্লগে নথিভুক্ত করেছে


2

আপনি একটি ডকারের ধারকের ভিতরে সিস্টেমে চালিত করতে পারেন। হোস্ট ওএস কোনও ব্যাপার নয়, যদিও আপনাকে হোস্টের / sys / fs / cgroup ভলিউমটি মাউন্ট করতে হবে। আমি এই গাইড অনুসরণ করে কাজ করতে পেরেছি: http://developerblog.redhat.com/2014/05/05/running-sstmd-within-docker-container/


4
সার্ভারফল্টে আপনাকে স্বাগতম। কোনও সমাধানের সাথে সংযোগ স্থাপনের পরিবর্তে, দয়া করে এটির প্রয়োজনীয় বিষয়গুলি এখানে আপনার উত্তরে অন্তর্ভুক্ত করুন। লিঙ্ক লক্ষ্যটি চলে গেলে আপনার উত্তরটি এখনও কার্যকর হবে।
অ্যান্ড্রু শুলম্যান

আপনি যে নিবন্ধটি লিঙ্ক করেছেন তাতে খুব দরকারী তথ্য রয়েছে। আপনার উত্তরটি সম্পূর্ণ হওয়ার জন্য, দয়া করে পরামর্শের মূল কার্যকারী টুকরোগুলি সংক্ষিপ্ত করুন (হোস্টের মাউন্টটি ছাড়াও /sys/fs/cgroup, যা আপনি উল্লেখ করেছেন)।
আমির

এবং এখানে আরও দরকারী তথ্য সহ ফলো-আপ নিবন্ধটি রয়েছে: developers.redhat.com/blog/2016/09/13/…
আমির

1

আমি এ থেকে পিছনে কাজ করতে সক্ষম হয়েছি: https://registry.hub.docker.com/u/codekoala/arch/

গোষ্ঠীগুলি (আরও) ইতিমধ্যে পাত্রে সরবরাহ করা হওয়ায় ডকার ১.১ এটিকে আরও সহজ করে তোলে - এখনও আমার প্রাইভেট অ্যাক্সেসের প্রয়োজন আছে যাতে এটি প্রাইভেটম্প্প মাউন্টগুলি তৈরি করতে পারে, তবে অন্যথায়, যতক্ষণ আপনি সিস্টেমড বাইনারি হিসাবে চালানোর জন্য সিএমডি নির্দিষ্ট করেন - এটি দুর্দান্তভাবে কাজ করে।


1

ডিবিয়ান: 8 টি অফিসিয়াল পাত্রে এটি করার চেষ্টা করার সময় এই প্রশ্নটি পেয়েছে। অফিসিয়াল ডিবিয়ান: 8 (ডিবিয়ান: জেসি) ধারকটিতে অন্য যে কেউ এটি করার চেষ্টা করছেন তাদের জন্য, @ ফ্রাঙ্ক-থেকে-ডিএসপিইইডের উত্তরটি পুরানো গিট হাব পোস্টে বর্ণিত একটি সামান্য পরিবর্তন নিয়ে কাজ করে :

docker run -d \
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
    --cap-add SYS_ADMIN \
    debian:jessie  /sbin/init
docker exec -it <your-new-container-name-or-ID> bash

তারপরে পাত্রে থেকে:

systemctl show-environment

এটি আমার পক্ষে নিখুঁতভাবে কাজ করে এবং যেহেতু এটি কেবল একটি উন্নয়নের পরিবেশ, তাই সুরক্ষার বিষয়টি আমার কাছে আসে না not

দ্রষ্টব্য: / sbin / init কমান্ডটি প্রসেস 1 হতে / sbin / init পায়, যা এই কাজটি করার মূল অংশ।


1
systemctl show-environmentআমার জন্য reutrns Failed to get D-Bus connection: Unknown error -1। আমি যখন ( ) systemctl এর --privilegedপরিবর্তে একটি পতাকা দিয়ে --cap-add SYS_ADMINdocker run -d --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name=ubuntu_systemd_test debian:jessie /sbin/init
ধারকটি

@twildfarmer আপনাকে ধন্যবাদ অন্য যে কেউ এটি চেষ্টা করে for এটি প্রয়োগ করা হয়েছে এমন আরও একটি ডকফাইফিল হ'ল: syslog.me/2016/03/31/an-init-sstm-in-a-docker-container
বিবেক কোদিরা

0

2018 হিসাবে, এটি এখন আমার জন্য কাজ করে: docker run -it -e container=docker আপনার ইমেজ-নাম /sbin/init

এটি আপনাকে শেল দেবে না, তবে আপনাকে কার্যকর কিছু করার জন্য প্রথমে চিত্রের অভ্যন্তরে কিছু সিস্টেমড সার্ভিস (যেমন sshd) সক্ষম করতে হবে।


আপনি এর জন্য কোন চিত্র ব্যবহার করছেন সে সম্পর্কে আপনি বিশদ দিতে পারেন? আমি উবুন্টু, ডেবিয়ান, আর্চ, আলপাইন এবং ওপেনসুএস চেষ্টা করেছি এবং তাদের কোনওটিই কাজ করে না। হয় বাইনারি উপস্থিত না থাকে বা সংস্থান খুলতে ব্যর্থ হয়।
কোডবলিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.