मैंने अपने होस्ट वर्चुअल मशीन पर डॉकटर स्थापित किया है। और अब एक फाइल का उपयोग करके बनाना चाहते हैं vi
।
लेकिन यह मुझे एक त्रुटि दिखा रहा है:
bash: vi: command not found
मैंने अपने होस्ट वर्चुअल मशीन पर डॉकटर स्थापित किया है। और अब एक फाइल का उपयोग करके बनाना चाहते हैं vi
।
लेकिन यह मुझे एक त्रुटि दिखा रहा है:
bash: vi: command not found
image
आप किससे निर्माण कर रहे हैं। शायद image
आप जो उपयोग कर रहे हैं वह इतना हल्का है कि इसमें केवल वही चीजें हैं जो आपको एक छवि के रूप में चलाने की आवश्यकता हैं। आपको उन पैकेजों को मैन्युअल रूप से स्थापित करने की आवश्यकता है जो आपको चाहिए।
जवाबों:
निम्नलिखित कमांड के साथ कंटेनर में लॉगिन करें:
docker exec -it <container> bash
उसके बाद, निम्न आदेश चलाएँ।
apt-get update
apt-get install vim
आपके कंटेनर ने संभवतः इसे बॉक्स से बाहर स्थापित नहीं किया है।
apt-get install vim
टर्मिनल में चलाएं और आपको जाने के लिए तैयार होना चाहिए।
vim-tiny
(उबंटू)
apt-get update
तोapt-get install vim
चलाने का आदेश इस बात पर निर्भर करता है कि आप किस आधार छवि का उपयोग कर रहे हैं।
अल्पाइन के लिए, vi
बेस ओएस के हिस्से के रूप में स्थापित किया गया है। स्थापित vim
करना होगा:
apk -U add vim
डेबियन और उबंटू के लिए:
apt-get update && apt-get install -y vim
सेंटोस के लिए, vi
आमतौर पर बेस ओएस के साथ स्थापित किया जाता है। के लिए vim
:
yum install -y vim
यह केवल शुरुआती विकास में किया जाना चाहिए। एक बार जब आपको एक कार्यशील कंटेनर मिल जाता है, तो फ़ाइलों का परिवर्तन आपकी छवि के लिए किया जाना चाहिए या आपके कंटेनर के बाहर संग्रहीत कॉन्फ़िगर किया जाना चाहिए। अपनी Dockerfile और अन्य फ़ाइलों को अपडेट करें जो एक नई छवि बनाने के लिए उपयोग करती हैं। यह निश्चित रूप से उत्पादन में नहीं किया जाना चाहिए क्योंकि कंटेनर के अंदर परिवर्तन डिजाइन पंचांग द्वारा किया जाता है और कंटेनर को बदलने पर खो जाएगा।
USER root
Dockerfile के अंदर ऐसा होता है, लेकिन अपने अन्य उपयोगकर्ता पर वापस स्विच करना सुनिश्चित करें। मैं एक रनिंग कंटेनर हूं:docker exec -u root ...
इसे इस्तेमाल करो:
apt-get update && apt-get install -y vim
उपरोक्त आदेश की व्याख्या
bash: apt-get: command not found
apk add
वैकल्पिक रूप से, अनावश्यक संपादकों को स्थापित न करके अपने डॉक छवियों को छोटा रखें। आप डॉक होस्ट से कंटेनर में ssh पर फाइल एडिट कर सकते हैं:
vim scp://remoteuser@container-ip//path/to/document
डेबियन आधारित कंटेनर में कमांड का उपयोग करें:
apt-get install vim-tiny
Dockerfile में उपयोग करने के लिए पूरा निर्देश:
RUN apt-get update && apt-get install --no-install-recommends -y \
vim-tiny \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
यह अनावश्यक पैकेज स्थापित नहीं करता है और अनावश्यक डाउनलोड की गई फ़ाइलों को निकालता है, इसलिए आपके docker छवि का आकार नाटकीय रूप से नहीं बढ़ेगा।
अपने डॉकर कंटेनर में स्थापित करने के लिए आप कमांड चला सकते हैं
docker apt-get update && apt-get install -y vim निष्पादित करें
लेकिन यह उस कंटेनर तक सीमित होगा जिसमें विम स्थापित है। इसे सभी कंटेनरों को उपलब्ध कराने के लिए, डॉकरफाइल को संपादित करें और जोड़ें
RUN apt-get update && apt-get install -y vim
या आप नए Dockerfile में छवि का विस्तार भी कर सकते हैं और ऊपर कमांड जोड़ सकते हैं। उदाहरण के लिए।
<छवि का नाम> से
RUN apt-get update && apt-get install -y vim
कंटेनर के अंदर (docker में, VM में नहीं), डिफ़ॉल्ट रूप से ये स्थापित नहीं हैं। यहां तक कि apt-get , wget काम नहीं करेगा। मेरा VM, Ubuntu 17.10 पर चल रहा है। मेरे लिए यम पैकेज मनगर ने काम किया।
यम डेबियन या ubuntu का हिस्सा नहीं है। यह रेड-हैट का हिस्सा है। लेकिन, यह उबंटू में काम करता है और इसे apt-get की तरह डिफ़ॉल्ट रूप से स्थापित किया गया है
तू वीम स्थापित करें, इस कमांड का उपयोग करें
yum install -y vim-enhanced
विम की स्थापना रद्द करने के लिए:
yum uninstall -y vim-enhanced
इसी तरह,
yum install -y wget
yum install -y sudo
-मैं यह मानने के लिए है कि क्या yum install packagename करने के बाद पूछे गए किसी भी प्रश्न के लिए संकेत दिया गया है
यदि आप वास्तव में एक डॉकटर में साधारण हाउसकीपिंग के लिए एक छोटा संपादक चाहते हैं, तो अपने डॉकरफाइल में इसका उपयोग करें:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
मैंने इसे उबंटू 18 आधारित डॉकटर पर इस्तेमाल किया। (बेशक आपको RUN apt-get update
इसके पहले की आवश्यकता हो सकती है लेकिन यदि आप अपनी खुद की डॉकर फाइल बना रहे हैं तो शायद आपके पास पहले से ही है।)
अगर आपको सिर्फ एक बार फाइल बदलने की जरूरत है। आपको स्थानीय रूप से परिवर्तन करना पसंद करना चाहिए और इस फाइल के साथ एक नई डॉकटर छवि का निर्माण करना चाहिए।
डॉकटर छवि में कहें, आपको myFile.xml नामक एक फाइल को / path / to / docker / image / के तहत बदलना होगा। तो, आपको करने की आवश्यकता है।
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
फिर अपनी स्वयं की docker छवि बनाएं docker build -t docker-repo:v-x.x.x .
फिर अपनी नव निर्मित डॉकटर छवि का उपयोग करें।