डॉक कंटेनर पर vi कैसे चलाएं?


103

मैंने अपने होस्ट वर्चुअल मशीन पर डॉकटर स्थापित किया है। और अब एक फाइल का उपयोग करके बनाना चाहते हैं vi

लेकिन यह मुझे एक त्रुटि दिखा रहा है:

bash: vi: command not found

1
vi कंटेनर के अंदर स्थापित नहीं किया जा सकता है। आपने किस कंटेनर को स्थापित और चलाया है?
हुसेन बाबुल

1
आपको अधिक विशिष्ट होना चाहिए। क्या आप एक कंटेनर के अंदर vi चलाने की कोशिश कर रहे हैं, यदि ऐसा है तो कौन सी छवि कंटेनर पर आधारित है? सभी संभावना में आप vi स्थापित नहीं है। (apt-get install vim)
wp

यह निर्भर करता है कि imageआप किससे निर्माण कर रहे हैं। शायद imageआप जो उपयोग कर रहे हैं वह इतना हल्का है कि इसमें केवल वही चीजें हैं जो आपको एक छवि के रूप में चलाने की आवश्यकता हैं। आपको उन पैकेजों को मैन्युअल रूप से स्थापित करने की आवश्यकता है जो आपको चाहिए।
इल्यूजनवादी

3
आप शायद एक कंटेनर के अंदर कॉन्फ़िगर नहीं कर रहे हैं। इसके बजाय डॉकरफाइल में करें।
एड्रियन मौट

जवाबों:


150

निम्नलिखित कमांड के साथ कंटेनर में लॉगिन करें:

docker exec -it <container> bash

उसके बाद, निम्न आदेश चलाएँ।

apt-get update
apt-get install vim

11
क्या आपको उपयुक्त समय पर अनुमति से वंचित मुद्दे का सामना करना चाहिए, आपको रूट के रूप में डॉक निष्पादन को चलाने की आवश्यकता है। "docker exec -u root -it <कंटेनर> बैश"। तब उपयुक्त को काम करना चाहिए।
java25

धन्यवाद @arunprakashpj छवि के लिए काम करने वाला एकमात्र कमांड AWS रिपॉजिटरी से डाउनलोड किया गया है।
realPK

37

आपके कंटेनर ने संभवतः इसे बॉक्स से बाहर स्थापित नहीं किया है।

apt-get install vimटर्मिनल में चलाएं और आपको जाने के लिए तैयार होना चाहिए।


2
हां, लेकिन मैं पसंद करता हूं vim-tiny(उबंटू)
बेन व्हेल

3
You apt-get install vim ’को चलाने से पहले, आपको-apt-get update’ को चलाना होगा।
user1521213 12

2
सबसे पहले apt-get updateतोapt-get install vim
योगी Ghorecha

32

चलाने का आदेश इस बात पर निर्भर करता है कि आप किस आधार छवि का उपयोग कर रहे हैं।

अल्पाइन के लिए, viबेस ओएस के हिस्से के रूप में स्थापित किया गया है। स्थापित vimकरना होगा:

apk -U add vim

डेबियन और उबंटू के लिए:

apt-get update && apt-get install -y vim

सेंटोस के लिए, viआमतौर पर बेस ओएस के साथ स्थापित किया जाता है। के लिए vim:

yum install -y vim

यह केवल शुरुआती विकास में किया जाना चाहिए। एक बार जब आपको एक कार्यशील कंटेनर मिल जाता है, तो फ़ाइलों का परिवर्तन आपकी छवि के लिए किया जाना चाहिए या आपके कंटेनर के बाहर संग्रहीत कॉन्फ़िगर किया जाना चाहिए। अपनी Dockerfile और अन्य फ़ाइलों को अपडेट करें जो एक नई छवि बनाने के लिए उपयोग करती हैं। यह निश्चित रूप से उत्पादन में नहीं किया जाना चाहिए क्योंकि कंटेनर के अंदर परिवर्तन डिजाइन पंचांग द्वारा किया जाता है और कंटेनर को बदलने पर खो जाएगा।


1
त्रुटि: डेटाबेस लॉक करने में असमर्थ: अनुमति से इनकार किया
garg10may

1
@ garg10may कमांड को रूट के रूप में चलाने की आवश्यकता है। USER rootDockerfile के अंदर ऐसा होता है, लेकिन अपने अन्य उपयोगकर्ता पर वापस स्विच करना सुनिश्चित करें। मैं एक रनिंग कंटेनर हूं:docker exec -u root ...
BMitch

21

इसे इस्तेमाल करो:

apt-get update && apt-get install -y vim

उपरोक्त आदेश की व्याख्या

  1. apt-get update => करंट पैकेज को अपडेट करेगा
  2. apt-get install => पैकेज स्थापित करेगा
  3. -y => अनुमति पास करके, डिफ़ॉल्ट अनुमति हां में सेट हो जाएगी।
  4. vim => उस पैकेज का नाम जिसे आप इंस्टॉल करना चाहते हैं।

मैंने इसे आजमाया लेकिन यह त्रुटि हुईbash: apt-get: command not found
जुनैद

@ जुनैद चेक के साथapk add
योगी घोराचा

12

अपने Dockerfile में निम्न पंक्ति जोड़ें और फिर docker छवि का पुनर्निर्माण करें।

RUN apt-get update && apt-get install -y vim

9

वैकल्पिक रूप से, अनावश्यक संपादकों को स्थापित न करके अपने डॉक छवियों को छोटा रखें। आप डॉक होस्ट से कंटेनर में ssh पर फाइल एडिट कर सकते हैं:

vim scp://remoteuser@container-ip//path/to/document

3
यदि कंटेनर ssh चल रहा है तो यह केवल काम नहीं करेगा ? मैंने सोचा था कि यह पहली बार एक शानदार विचार था, लेकिन इसे काम करने के लिए नहीं मिल सकता है।
केविन

7

डेबियन आधारित कंटेनर में कमांड का उपयोग करें:

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 छवि का आकार नाटकीय रूप से नहीं बढ़ेगा।


3

अपने डॉकर कंटेनर में स्थापित करने के लिए आप कमांड चला सकते हैं

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


1

कंटेनर के अंदर (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 करने के बाद पूछे गए किसी भी प्रश्न के लिए संकेत दिया गया है


0

यदि आप वास्तव में एक डॉकटर में साधारण हाउसकीपिंग के लिए एक छोटा संपादक चाहते हैं, तो अपने डॉकरफाइल में इसका उपयोग करें:

RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi

मैंने इसे उबंटू 18 आधारित डॉकटर पर इस्तेमाल किया। (बेशक आपको RUN apt-get updateइसके पहले की आवश्यकता हो सकती है लेकिन यदि आप अपनी खुद की डॉकर फाइल बना रहे हैं तो शायद आपके पास पहले से ही है।)


0

अगर आपको सिर्फ एक बार फाइल बदलने की जरूरत है। आपको स्थानीय रूप से परिवर्तन करना पसंद करना चाहिए और इस फाइल के साथ एक नई डॉकटर छवि का निर्माण करना चाहिए।

डॉकटर छवि में कहें, आपको myFile.xml नामक एक फाइल को / path / to / docker / image / के तहत बदलना होगा। तो, आपको करने की आवश्यकता है।

  1. अपने स्थानीय फाइल सिस्टम में myFile.xml की प्रतिलिपि बनाएँ और आवश्यक परिवर्तन करें।
  2. निम्नलिखित सामग्री के साथ 'Dockerfile' नामक एक फ़ाइल बनाएँ-
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/

फिर अपनी स्वयं की docker छवि बनाएं docker build -t docker-repo:v-x.x.x .

फिर अपनी नव निर्मित डॉकटर छवि का उपयोग करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.