আপনি কি কোনও ফাইলের (বা তদ্বিপরীত) কোনও ডিরেক্টরিতে কোনও ডিরেক্টরি মাউন্ট করার চেষ্টা করছেন?


92

আমার কাছে সংস্করণ সহ একটি ডকার রয়েছে 17.06.0-ce। যখন আমি কমান্ড সহ ডকার ব্যবহার করে এনজিআইএনএক্স ইনস্টল করার চেষ্টা করছি:

docker run -p 80:80 -p 8080:8080 --name nginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx:latest

এটি দেখায় যে

ডকার: ডেমন থেকে ত্রুটি প্রতিক্রিয়া: oci রানটাইম ত্রুটি: ধারক_লিনক্স.গো: 262: ধারক প্রক্রিয়া শুরু হওয়ার কারণে "প্রক্রিয়া_লিনক্স.গো: 339: ধারক আরআইআই caused" রুটফএস_লিনক্স.গো: 57: মাউন্টিং \\ "/ অ্যাপডাটা / এনগিনক্স / কনফিড / nginx.conf \\ / var / lib / Docker / aufs যদি / mnt / dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0 \\ "এ \\" / var / lib / Docker / aufs যদি / mnt / dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0 জন্য / etc / nginx / nginx.conf "rootfs \\ থেকে" \\ "কারণে \\" ডিরেক্টরি নয় \\ "\" ": আপনি কি কোনও ফাইলের (বা তদ্বিপরীত) ডিরেক্টরিতে ডিরেক্টরিকে মাউন্ট করার চেষ্টা করছেন? নির্দিষ্ট হোস্ট পথটি বিদ্যমান এবং প্রত্যাশিত প্রকার কিনা তা পরীক্ষা করে দেখুন।

যদি nginx.confফাইলটি মাউন্ট না করে তবে সবকিছু ঠিক আছে। সুতরাং, আমি কনফিগারেশন ফাইলটি কীভাবে মাউন্ট করব?


এর আউটপুট কি ls -al .? আপনার পিডাব্লুডির দেখতে দেখতে চান।
ট্রাই

4
আমার ক্ষেত্রে আমি ঘটনাক্রমে হোস্ট থেকে একটি ধারকটির একটি ফাইলের জন্য একটি ডিরেক্টরি ম্যাপ করেছি। ধারকটি পুনরায় চালু করা আর কাজ করে না। আমাকে ধারকটি অপসারণ করতে হয়েছিল ( docker rm …), তারপরে এটি পুনরায় তৈরি করুন।
slhck

উত্তর:


26

কারণ ডকার কোনও ফাইল হিসাবে নয় ফোল্ডার$PWD/conf/nginx.conf হিসাবে স্বীকৃতি পাবে । তা পরীক্ষা করুন ডিরেক্টরি ধারণকারী হিসেবে ডিরেক্টরি$PWD/conf/nginx.conf

সঙ্গে পরীক্ষা

> cat $PWD/conf/nginx.conf 
cat: nginx.conf/: Is a directory

অন্যথায়, একটি ডকার ইস্যু খুলুন ।
এটি একই কনফিগারেশন সহ আমার জন্য কাজ করছে।


মধ্যবর্তী স্তরের লিনাক্স ব্যবহারকারী হিসাবে আমি কৌতূহলী, লিনাক্স একটি ফোল্ডার হিসাবে এবং ফাইল হিসাবে স্বীকৃতি দেওয়ার কারণ কী?
জে. স্কট এলব্লিন

কারণ এটি আসলে একটি ফোল্ডার। যদি ফাইলটি অস্তিত্ব না থাকে তবে ভলিউম আর্গুমেন্টের কারণে ডকার একটি ফোল্ডার তৈরি করে-v
ম্যাথিউ লেসক্যাড্রন

ঠিক আছে, সুতরাং লকিনিক্স কেবল ফোল্ডার হিসাবে স্বীকৃতি জানায় যদি ডকারকে আগে তৈরি না হওয়ার কারণে এটি তৈরি করতে হত; তবে nginx.confলিনাক্স যদি আগে থেকেই সেই পথে উপস্থিত থাকে তবে এটি কোনও ফাইল হিসাবে স্বীকৃতি দেবে, তাই না?
জে. স্কট এলব্লিন

137

এটি আর ঘটবে না (v2.2.0.0 থেকে), এখানে দেখুন


আপনি যদি উইন্ডোজের জন্য ডকার ব্যবহার করেন , আপনি যদি সম্প্রতি নিজের পাসওয়ার্ড পরিবর্তন করে থাকেন তবে এই ত্রুটিটি ঘটতে পারে।

কিভাবে ঠিক করবো:

  1. প্রথমে ভাঙা ধারকটির ভলিউম মোছার বিষয়টি নিশ্চিত করুন
    docker rm -v <container_name>
    আপডেট: নীচের পদক্ষেপগুলি প্রথমে ভলিউমগুলি মোছার প্রয়োজন ছাড়াই কাজ করতে পারে।
  2. ডকার সেটিংস খুলুন
  3. "ভাগ করা ড্রাইভ" ট্যাবে যান
  4. উইন্ডোর নীচে "শংসাপত্রগুলি পুনরায় সেট করুন ..." লিঙ্কে ক্লিক করুন
  5. ডকারের সাথে আপনি যে ড্রাইভগুলি ব্যবহার করতে চান তা পুনরায় ভাগ করুন
  • আপনাকে আপনার ব্যবহারকারীর নাম / পাসওয়ার্ড লিখতে অনুরোধ জানানো উচিত
  1. "প্রয়োগ" ক্লিক করুন
  2. "রিসেট" ট্যাবে যান
  3. "পুনঃসূচনা ডকার" ক্লিক করুন
  4. আপনার ধারকগুলি / ভলিউমগুলি পুনরায় তৈরি করুন

সমাধানের জন্য ক্রেডিট গিটহাবের বারানঅরনরলিতে যায়।


4
ধন্যবাদ! এটি দ্বিতীয় ধাপ থেকে শুরু করে এবং সর্বশেষটি এড়ানোর জন্য আমার পক্ষে কাজ করে।
মাতিও হারমোসিলা

4
আমি দ্বিতীয় পদক্ষেপটি শুরু করে এবং শেষটি বাদ দিয়ে সমস্যার সমাধান করতে সক্ষম হয়েছি। আমাকে আবার মাউন্ট করতে পাত্রে / ভলিউমগুলি ধ্বংস করতে হয়নি।
খ্রিস্টান এঙ্গেল

আমি @ মেটোহার্মোসিলার সাথে একমত, এটি কেবল ধারকটি সনাক্ত করার দরকার নেই, কেবল "শংসাপত্রগুলি পুনরায় সেট করুন"
sintetico82

স্যান্ডবক্স-প্রক্সি ইনস্টল করার সময় প্রক্সি-ডিপ্লোয়.শ চালানোর চেষ্টা করার সময় আমি একই ত্রুটি পাচ্ছি। এই soln অনুসরণ এটি ঠিক করে নি।
বৈভব

4
এটা আমার জন্য সমস্যা ছিল। পাসওয়ার্ড রিসেট প্রতি কয়েক মাসে হয়, তাই আমি ডকারে ভাগ করা ড্রাইভের শংসাপত্রগুলি পুনরায় সেট করতে ভুলে যেতে থাকি।
অ্যান্ডার্স টর্নব্ল্যাড

41

টিএল; ডিআর : ধারকটির সাথে যুক্ত ভলিউমগুলি সরান।

ব্যবহার করে ধারকটির নামটি সন্ধান করুন docker ps -aতারপরে সেই ধারকটি সরিয়ে ফেলুন:

docker rm -v <container_name>

সমস্যা:

হোস্ট ডিরেক্টরিতে যেখানে থাকা উচিত ছিল docker runসেখানে ফাইলটি উপস্থিত না থাকাকালীন আপনি যদি কমান্ডটি চালানোর চেষ্টা করে থাকেন তবে আপনি যে ত্রুটির মুখোমুখি হচ্ছেন সেটির কারণ হতে পারে ।

এই ক্ষেত্রে ডকার ডিমন তার স্থানে কনটেইনারটির ভিতরে একটি ডিরেক্টরি তৈরি করতে সক্ষম হয়েছিল, যা পরে সঠিক ফাইলগুলি হোস্ট ডিরেক্টরিতে স্থাপন করা হয় এবং ডকার কমান্ডটি আবার চালানো হলে যথাযথ ফাইলটিতে মানচিত্র করতে ব্যর্থ হয়।

সমাধান:

ধারকের সাথে যুক্ত ভলিউমগুলি সরান। আপনি যদি অন্য ধারক ভলিউম সম্পর্কে উদ্বিগ্ন না হন তবে আপনি এটি ব্যবহার করতে পারেন:

docker volume rm $(docker volume ls -q)

মূল প্রশ্নের কমান্ডটি কেবল ব্যবহৃত হোস্ট ভলিউমকে তালিকাভুক্ত করে। docker volumeকমান্ড / ইন্টারফেস সংঙ্ক্রান্ত শুধুমাত্র বেনামী এবং নামে খন্ডে প্রকাশিত হয় মূল প্রশ্ন অংশ নয় জন্য।
প্রোগ্রামার্ক

@ প্রোগ্রামমার্ক ত্রুটিটি দেখুন, এটি বলেছে যে /var/lib/docker/aufs/mnt/dcea22444e9ffda114593b18fc8b574adfada06947385aedc2ac09f199188fa0\\\"আমার ছাড়ের সময় মাউন্ট করার চেষ্টা করার সময় মাউন্ট ব্যর্থ হয়েছিল : পূর্ববর্তী রানের কারণে এটিতে ইতিমধ্যে একটি ফোল্ডার রয়েছে, সুতরাং আপনি যদি সেই ফোল্ডারে কোনও ফাইল ম্যাপ করার চেষ্টা করেন তবে এটি ব্যর্থ হবে।
আয়ুষ্য

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

4
এটি আসলে কখনই ধারকটির সাথে কোনও ভলিউমের সাথে যুক্ত হয়ে গিয়েছে এবং পরবর্তী রানে সেই ভলিউমের ধরণের পরিবর্তন করা হচ্ছে তার জন্য এটি একটি বৈধ উত্তর। ভলিউম অপসারণ সাহায্য করতে পারে!
ইয়ান ফটো

4
এটি সহায়ক ছিল। আমার ক্ষেত্রে সমস্যাটি ছিল যে আমার পুরানো পাত্রে এখনও সংজ্ঞায়িত ছিল। এগুলিকে জ্যাপ করতে ডকার আরএম ব্যবহার করে এবং তারপরে ডকার-রচনাটি সঠিকভাবে কাজ করেছে।
সর্বাধিক তারদিউউ

7

ডকার টুলবক্স ব্যবহার করা লোকেদের জন্য উত্তর

এখানে কমপক্ষে 3 টি উত্তর এসেছে সমস্যার স্পর্শ করে, তবে এটি সঠিকভাবে ব্যাখ্যা না করে এবং সম্পূর্ণ সমাধান না দিয়ে। এটি কেবল একটি ফোল্ডার মাউন্টিং সমস্যা

সমস্যার বর্ণনা:

ডকার টুলবক্স একটি ভার্চুয়াল মেশিন তৈরি করে ভার্চুয়ালবক্সে (ভার্চুয়ালবক্সে, যা বান্ডেলযুক্ত) তৈরি করে ডকারের হাইপার-ভি প্রয়োজনীয়তার বাইরে চলে যায়। ডকার ইনস্টল করা আছে এবং ভিএম এর অভ্যন্তরে চলে। ডকারের সঠিকভাবে কাজ করার জন্য, এটির হোস্ট মেশিন থেকে অ্যাক্সেস থাকা দরকার। যা এখানে তা করে না।

আমি ডকার টুলবক্স ইনস্টল করার পরে এটি ভার্চুয়ালবক্স ভিএম তৈরি করেছে এবং কেবল C:\Usersমেশিনে মাউন্ট করা হয়েছে \c\Users\। আমার প্রকল্প C:\projectsমাউন্ট ভলিউম তেমন কোথাও ছিল না । আমি যখন ভিএম-তে পাথ প্রেরণ করছিলাম তখন এটি উপস্থিত ছিল না, যেমন C:\projectsমাউন্ট করা হয়নি। অতএব, উপরের ত্রুটি।

ধরা যাক আমি আমার প্রজেক্টে আমার এনগনিক্স কনফিগারেশনটি অন্তর্ভুক্ত করেছি C:/projects/project_name/

এটি ঠিক করা:

  1. ভার্চুয়ালবক্সে যান, ডিফল্ট এ ডান ক্লিক করুন (ডকার থেকে ভিএম)> সেটিংস> ভাগ করা ফোল্ডার এখানে চিত্র বর্ণনা লিখুন

  2. ডানদিকে প্লাস দিয়ে ছোট আইকনটি ক্লিক করা, একটি নতুন ভাগ যুক্ত করুন। আমি নিম্নলিখিত সেটিংস ব্যবহার করেছি:

এখানে চিত্র বর্ণনা লিখুন

  1. উপরে ম্যাপ করবে C:\projectsকরার /projects( ROOT/projectsVM- র মধ্যে), যার মানে হল আপনি এখন যে কোনো পথ প্রকল্পে মত এই উল্লেখ করতে পারেন: /projects/project_name- কারণ project_nameথেকে C:\projects\project_nameএখন মাউন্ট করা আবশ্যক।

আপেক্ষিক পাথ ব্যবহার করার জন্য, পাথ নামকরণ বিবেচনা করুন c/projectsনাprojects

  1. সবকিছু পুনরায় আরম্ভ করুন এবং এটি এখন সঠিকভাবে কাজ করা উচিত। আমি ম্যানুয়ালি ভার্চুয়ালবক্সে ভার্চুয়াল মেশিনটি বন্ধ করে দিয়ে ডকার টুলবক্স সিএলআই পুনরায় চালু করেছি।

আমার ডকার ফাইলে, আমি এখন এর nginx.confমতো উল্লেখ করি :

volumes:
    - /projects/project_name/docker_config/nginx/nginx.conf:/etc/nginx/conf.d/default.conf

যেখানে nginx.conf আসলে থাকে C:\projects\project_name\docker_config\nginx\nginx.conf


7

@ আয়ুষ্য যে ব্যাখ্যা দিয়েছিলেন তা হ'ল কারণ আমি এই কিছুটা বিভ্রান্তিকর ত্রুটি বার্তাকে আঘাত করেছি এবং প্রয়োজনীয় গৃহকর্মী সহজেই এইভাবে করা যায়:

$ docker container prune
$ docker volume prune

6

আমারও একই সমস্যা ছিল। আমি উইন্ডোজ 10 17.09 এ ডাব্লুএসএল সহ ডকার ডেস্কটপ ব্যবহার করছিলাম।

সমস্যার কারণ:

সমস্যাটি হ'ল উইন্ডোজের জন্য ডকার আশা করেন যে আপনি এটির সাথে মেলে এমন ফর্ম্যাটে আপনার ভলিউম পাথ সরবরাহ করবেন:

/c/Users/username/app

বাট, ডাব্লুএসএল পরিবর্তে ফর্ম্যাটটি ব্যবহার করে:

/mnt/c/Users/username/app

এটি বিভ্রান্তিকর কারণ কনসোলে ফাইলটি পরীক্ষা করার সময় আমি এটি দেখেছিলাম এবং আমার জন্য সবকিছু সঠিক ছিল। আমি ভলিউম পাথ সম্পর্কে উইন্ডোজ প্রত্যাশাগুলির জন্য ডকার সম্পর্কে অবগত ছিল না ।

সমস্যার সমাধান:

আমি উইন্ডোজ এবং ডাব্লুএসএল পার্থক্যের জন্য ডকার ঠিক করার জন্য কাস্টম মাউন্ট পয়েন্টগুলিকে আবদ্ধ করেছি:

sudo mount --bind /mnt/c /c

এই আশ্চর্যজনক গাইডে প্রস্তাবিত মত: উইন্ডোজ এবং ডাব্লুএসএল নির্বিঘ্নে কাজ করার জন্য ডকার সেটআপ করা এবং সবকিছু এখন নিখুঁতভাবে কাজ করছে।

ডাব্লুএসএল ব্যবহার শুরু করার আগে আমি গিট বাশ ব্যবহার করছিলাম এবং আমারও এই সমস্যা ছিল।


4
আরও বিশদ এখানে: github.com/10up/wp-local-docker/issues/…
nbeuchat

4

আমি উইন্ডোজের জন্য ডকার টুলবক্স ব্যবহার করছি। ডিফল্টরূপে সি ড্রাইভ স্বয়ংক্রিয়ভাবে মাউন্ট হয়, সুতরাং ফাইলগুলি মাউন্ট করার জন্য আপনার ফাইল এবং ফোল্ডারগুলি সি ড্রাইভের ভিতরে রয়েছে তা নিশ্চিত করুন

উদাহরণ: C:\Users\%USERNAME%\Desktop


4
আমার মাউন্ট করা ফোল্ডারটি সি: \ এক্স-স্যুট \; আমি আমার সি ড্রাইভ ভাগ করে নিয়েছি , তবে এখনও আমার সমস্যার সমাধান করতে পারিনি
袁文涛

আপনি কি ডকার টুলবক্স ব্যবহার করছেন?
অভিষেক ডি কে

মিনিকিউব + ভার্চুয়ালবক্স + ডকার টুলবক্স, লোকালকিউব অবহেলা করা হয়েছে, আমার কোন ড্রাইভার ব্যবহার করা উচিত?
袁文涛

আপনি যদি ডকারকম্পোজ থেকে মাউন্ট করছেন, তবে $ {পিডব্লিউড} / <पथ> ব্যবহার করুন
অভিষেক ডি কে

4
আপনি যদি ডকফাইলে করছেন, তবে ভলিউম / সি / এক্স-স্যুট ব্যবহার করুন
অভিষেক ডি কে

2

কেউ এটি দরকারী বলে মনে হচ্ছে। আমার রচনা ফাইলটি নিম্নলিখিত ভলিউম মাউন্ট ছিল

./file:/dir/file

./File এর অস্তিত্ব ছিল না, এটি এবিসিতে মাউন্ট করা হয়েছিল (ফোল্ডার হিসাবে ডিফল্টরূপে)।

আমার ক্ষেত্রে আমার একটি ধারক এসেছে

docker commit ABC cool_image

আমি পরে। / ফাইল এবং তৈরি করার সময় আমার docker-compose upত্রুটি ছিল:

[...] আপনি কি কোনও ফাইলের (বা তদ্বিপরীত) কোনও ডিরেক্টরিতে মাউন্ট করার চেষ্টা করছেন? নির্দিষ্ট হোস্ট পথটি বিদ্যমান এবং প্রত্যাশিত প্রকার কিনা তা পরীক্ষা করে দেখুন।

ধারকটি cool_imageস্মরণে আনতে পেরেছিল যে /dir/fileএটি একটি ডিরেক্টরি ছিল এবং এটি ইদানীং তৈরি এবং মাউন্টের সাথে বিরোধপূর্ণ./file

সমাধানটি ছিল:

touch ./file
docker run abc_image --name ABC -v ./file:/dir/file
# ... desired changes to ABC
docker commit ABC cool_image

আপনাকে ধন্যবাদ, এটি আমার সমস্যাও ছিল কারণ আমার কাছে বেশ জটিল ডকার সেটআপ রয়েছে!
আরএমসিচারি

1

উইন্ডোজ 10-এ, আমি আমার docker-compose.ymlফাইল বা ডকার কনফিগারেশনের সাধারণ কোনও পরিবর্তন না করেই এই ত্রুটিটি পেয়েছি ।

আমার ক্ষেত্রে, আমি ফায়ারওয়াল নীতি সহ একটি ভিপিএন ব্যবহার করছিলাম যা 445 পোর্টটিকে অবরুদ্ধ করে।

ভিপিএন থেকে সংযোগ বিচ্ছিন্ন করার পরে সমস্যাটি অদৃশ্য হয়ে যায়।

সুতরাং আমি আপনার ফায়ারওয়ালটি পরীক্ষা করার এবং ডকার ডেস্কটপ চালানোর সময় কোনও প্রক্সি বা ভিপিএন ব্যবহার না করার পরামর্শ দিচ্ছি।

উইন্ডোজের জন্য ডকার পরীক্ষা করুন - ভাগ করা ড্রাইভগুলির জন্য ফায়ারওয়াল বিধি আরও তথ্যের ।

আমি আশা করি এটি অন্য কাউকে সহায়তা করবে।


1

আপনি দয়া করে পরিবর্তে পরম / সম্পূর্ণ পথ ব্যবহার করতে পারেন $PWD/conf/nginx.conf? তাহলে এটি কাজ করবে।

EX:docker run --name nginx-container5 --rm  -v /home/sree/html/nginx.conf:/etc/nginx/nginx.conf -d -p 90:80 nginx
b9ead15988a93bf8593c013b6c27294d38a2a40f4ac75b1c1ee362de4723765b

root@sree-VirtualBox:/home/sree/html# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
b9ead15988a9        nginx               "nginx -g 'daemon of…"   7 seconds ago       Up 6 seconds        0.0.0.0:90->80/tcp   nginx-container5
e2b195a691a4        nginx               "/bin/bash"              16 minutes ago      Up 16 minutes       0.0.0.0:80->80/tcp   test-nginx

যদি আপনি এটি ডাবল-কোট দিয়ে রক্ষা করেন: ডকার চালান -d --rm -v "$ পিডাব্লুডি / এনগিনেক্স.কোনফ: /etc/nginx/nginx.conf" এনজিনেক্স এটি কোনও তাত্পর্যপূর্ণ হওয়া উচিত কারণ শেল এটি পাস করার আগে এটি অনুবাদ করবে দৌড়ানোর জন্য এবং আসলে, এটি কোনও পার্থক্য করে না, আমার পক্ষে কমপক্ষে
ম্যানুমি ২ie

1

আমি উইন্ডোজ 10-এ এই কমান্ড লাইনের সাহায্যে ডক্সার ডাব্লুএসএস 1 ব্যবহার করে একই সমস্যাটি অনুভব করেছি:

echo $PWD
/mnt/d/nginx

docker run --name nginx -d \
  -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx

আমি হোস্ট সিস্টেমে ফাইলের পথটিকে ইউনিক্স স্টাইলের পরম পথে পরিবর্তন করে সমাধান করেছি:

docker run --name nginx -d \
  -v /d/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx

অথবা পাথ বিভাজক হিসাবে /পরিবর্তে উইন্ডোজ স্টাইলের পরম পাথ ব্যবহার \:

docker run --name nginx -d \
  -v D:/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx

উইন্ডোজ স্টাইল পাথ বনাম ইউনিক্স স্টাইল পাথ ব্যবহার করার সময় আপনি কি কোনও পারফরম্যান্সের পার্থক্য লক্ষ্য করেছেন?
জে. স্কট এবলিন

আমি বলতে পারি না। আমি কেবল পরীক্ষার / বিকাশের জন্য উইন্ডোজের জন্য ডকার ব্যবহার করছি এবং কখনও কর্মক্ষমতা পর্যবেক্ষণ করি না।
বিবিবো

0

ভার্চুয়াল বক্স 6.0.10 এ আপডেট করা ডকার টুলবক্সের জন্য এই সমস্যাটি স্থির করেছে

https://github.com/docker/toolbox/issues/844

আমি এই ধরণের ত্রুটিটি অনুভব করছিলাম:


mlepisto@DESKTOP-VKJ76GO MINGW64 ~/G/Projects
$ touch resolv.conf

mlepisto@DESKTOP-VKJ76GO MINGW64 ~/G/Projects
$ docker run --rm -it -v $PWD/resolv.conf:/etc/resolv.conf ubuntu /bin/bash
C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/c/Users/mlepisto/G/Projects/resolv.conf\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/overlay2/61eabcfe9ed7e4a87f40bcf93c2a7d320a5f96bf241b2cf694a064b46c11db3f/merged\\\" at \\\"/mnt/sda1/var/lib/docker/overlay2/61eabcfe9ed7e4a87f40bcf93c2a7d320a5f96bf241b2cf694a064b46c11db3f/merged/etc/resolv.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

# mounting to some other file name inside the container did work just fine
mlepisto@DESKTOP-VKJ76GO MINGW64 ~/G/Projects/
$ docker run --rm -it -v $PWD/resolv.conf:/etc/resolv2.conf ubuntu /bin/bash
root@a5020b4d6cc2:/# exit
exit

ভিটুয়ালবক্স আপডেট করার পরে সমস্ত কমান্ড ঠিক কাজ করেছিল 🎉


0

একই মাথা স্ক্র্যাচ ছিল কারণ স্থানীয়ভাবে আমার কাছে ফাইল নেই তাই এটি এটিকে ফোল্ডার হিসাবে তৈরি করেছে।

mimas@Anttis-MBP:~/random/dockerize/tube$ ls
Dockerfile
mimas@Anttis-MBP:~/random/dockerize/tube$ docker run --rm -v $(pwd)/logs.txt:/usr/app/logs.txt devopsdockeruh/first_volume_exercise
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/Users/mimas/random/dockerize/tube/logs.txt\\\" to rootfs \\\"/var/lib/docker/overlay2/75891ea3688c58afb8f0fddcc977c78d0ac72334e4c88c80d7cdaa50624e688e/merged\\\" at \\\"/var/lib/docker/overlay2/75891ea3688c58afb8f0fddcc977c78d0ac72334e4c88c80d7cdaa50624e688e/merged/usr/app/logs.txt\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
mimas@Anttis-MBP:~/random/dockerize/tube$ ls
Dockerfile  logs.txt/

0

অজানা: আপনি কি কোনও ফাইলের (বা তদ্বিপরীত) ডিরেক্টরিতে ডিরেক্টরিটি মাউন্ট করার চেষ্টা করছেন? নির্দিষ্ট হোস্ট পথটি বিদ্যমান এবং প্রত্যাশিত প্রকার কিনা তা পরীক্ষা করে দেখুন

ম্যাক পরিবেশে নিগিনেক্সেও আমার একইরকম ত্রুটি ছিল। ডকার ডিফল্টকনফ ফাইলটি সঠিকভাবে চিনতে পারেনি। একবার আপেক্ষিক পথটিকে পরম পথে পরিবর্তন করার পরে ত্রুটিটি স্থির করা হয়েছিল।

      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf

0

আমার জন্য, এটি কার্যকর হয়নি:

volumes:
  - ./:/var/www/html
  - ./nginx.conf:/etc/nginx/conf.d/site.conf

তবে এটি কার্যকর কাজ করে (স্পষ্টতই আমার কনফিগারেশন ফাইলটি একটি নতুন ডিরেক্টরিতেও স্থানান্তরিত করেছে:

volumes:
  - ./:/var/www/html
  - ./nginx/nginx.conf:/etc/nginx/conf.d/site.conf

0

আমি এখানে আমার কেসটি ভাগ করব কারণ এটি ভবিষ্যতে অন্য কারও জন্য অনেক সময় সাশ্রয় করতে পারে।

আমি গিটলাব সিআই-তে ডকার-ইন-ডকার ব্যবহার শুরু না করা পর্যন্ত আমার ম্যাকোজে পুরোপুরি কাজ করছে ডকার-রচনা। আমাকে কেবল একটি সংগ্রহশালায় মাস্টার হিসাবে কাজ করার অনুমতি দেওয়া হয়েছিল, এবং গিটল্যাব সিআই অন্য কারও দ্বারা স্ব-হোস্টেড এবং সেটআপ হয় এবং এটি কীভাবে সেটআপ হয় ইত্যাদি সম্পর্কে কোনও তথ্য ভাগ করা হয়নি

নিম্নলিখিত সমস্যার কারণ হয়ে উঠেছে:

volumes:
  - ./.docker/nginx/wordpress/wordpress.conf:/etc/nginx/conf.d/default.conf

কেবলমাত্র যখন আমি লক্ষ্য করেছি যে এটি উইন্ডোগুলির নিচে চলতে পারে (ঘন্টার মাথায় চুলকাতে থাকা ঘন্টাগুলি), আমি wodpress.conf এর নাম পরিবর্তন করে ডিফল্টকন্টে চেষ্টা করেছি এবং কেবল পীর নামগুলি সেট করেছি:

volumes:
  - ./.docker/nginx/wordpress:/etc/nginx/conf.d

এই সমস্যার সমাধান!


0

উইন্ডোজ under এর অধীনে আমার এই সমস্যা ছিল কারণ আমার ডকস্পাইলটি বিভিন্ন ড্রাইভে ছিল।

সমস্যাটি সমাধান করার জন্য আমি এখানে যা করেছি:

  1. ভার্চুয়ালবক্স ম্যানেজার খুলুন
  2. "ডিফল্ট" ধারক নির্বাচন করুন এবং সেটিংস সম্পাদনা করুন।
  3. ভাগ করা ফোল্ডার নির্বাচন করুন এবং একটি নতুন ভাগ করা ফোল্ডার যুক্ত করতে আইকনটি ক্লিক করুন
  4. ফোল্ডার পাথ: x: \
  5. ফোল্ডারের নাম: / এক্স
  6. অটো-মাউন্ট পরীক্ষা করুন এবং স্থায়ী করুন
  7. ভার্চুয়াল মেশিন পুনরায় চালু করুন

এই মুহুর্তে, docker-compose upকাজ করা উচিত।


0

উইন্ডোজ 10 এ ডকারের আপডেট হওয়ার পরে আমি একই ত্রুটি পেয়েছি: 2.3.0.2 (45183)।

... \\\"not a directory\\\"\"":অজানা কারণে : আপনি কি কোনও ফাইলের (বা তদ্বিপরীত) কোনও ডিরেক্টরিতে কোনও ডিরেক্টরি মাউন্ট করার চেষ্টা করছেন? নির্দিষ্ট হোস্ট পথটি বিদ্যমান এবং প্রত্যাশিত প্রকার কিনা তা পরীক্ষা করে দেখুন

আমি এর মতো নিখুঁত পাথগুলি ব্যবহার করছিলাম //C/workspace/nginx/nginx.confএবং সমস্ত কিছুই কবজির মতো কাজ করেছিল।
আপডেটটি আমার ডকার-রচনাটিকে ভেঙে দিয়েছে এবং আমাকে মূলটির জন্য /C/workspace/nginx/nginx.confএকক দিয়ে পাথগুলি পরিবর্তন করতে হয়েছিল /


0

নোট করুন যে আপনি হোস্টের কাছ থেকে কোনও ভলিউম মাউন্ট করার চেষ্টা করলে ডকারের পছন্দসমূহের রিসোর্স> ফাইল শেয়ারিং বিভাগে যোগ করা হয়নি এমনটিও ঘটবে।

এখানে চিত্র বর্ণনা লিখুন

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

উদাহরণস্বরূপ, আপনার অ্যাপ্লিকেশনটি যদি অবস্থিত থাকে তবে /mysites/myappআপনি /mysitesফাইল ভাগ করে নেওয়ার সংস্থান অবস্থান হিসাবে যুক্ত করতে চাইবেন ।


0

আমার একই সমস্যা ছিল, ডকার-কম্পোজ ফাইলের পরিবর্তে একটি ডিরেক্টরি তৈরি করছিল, তারপরে মাঝ-পথে ক্র্যাশ করছিল।

আমি কি করেছিলাম:

  1. কোনও ম্যাপিং ছাড়াই পাত্রে চালান।

  2. .confহোস্টের স্থানে ফাইলটি অনুলিপি করুন :

    docker cp containername:/etc/nginx/nginx.conf ./nginx.conf

  3. পাত্রে সরান ( docker-compose down)।

  4. ম্যাপিংটি পিছনে রাখুন।

  5. পাত্রে পুনরায় মাউন্ট করুন।

ডকার কমপোজ ডিরেক্টরিটি তৈরি করার চেষ্টা করার পরিবর্তে .confফাইলটি সন্ধান এবং এটি ম্যাপ করবে ।


-2

আমি মাউন্ট সমস্যা সমাধান করেছি। আমি একটি উইন 7 পরিবেশ ব্যবহার করছি, এবং আমার কাছেও একই সমস্যা হয়েছিল।

আপনি কি কোনও ফাইলের উপর একটি ডিরেক্টরি মাউন্ট করার চেষ্টা করছেন?

ধারকটির ডিফল্ট সিঙ্ক ডিরেক্টরি রয়েছে C:\Users\, তাই আমি আমার প্রকল্পটিতে সরিয়ে নিয়েছি C:\Users\, তারপরে প্রকল্পটি পুনরায় তৈরি করেছি। এখন এটা কাজ করছে.

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