vi darf nicht im Container installiert werden. Welchen Container haben Sie installiert und ausgeführt?
Hüseyin BABAL
1
Sie müssen genauer sein. Versuchen Sie, vi in einem Container auszuführen. Wenn ja, auf welchem Image basiert der Container? Höchstwahrscheinlich haben Sie vi nicht installiert. (apt-get install vim)
wpp
Es hängt davon ab, von welchem imageSie bauen. Höchstwahrscheinlich ist imageIhre Verwendung so leicht, dass sie nur Dinge enthält, die Sie als Image ausführen müssen. Sie müssen die benötigten Pakete manuell installieren.
Illusionist
3
Sie sollten die Konfiguration wahrscheinlich nicht in einem Container durchführen. Tun Sie es stattdessen in der Docker-Datei.
Wenn Sie beim Ausführen von apt-get auf ein Problem mit verweigerter Berechtigung stoßen, müssen Sie Docker Exec als Root ausführen. "docker exec -u root -it <container> bash". Dann sollte apt-get funktionieren.
Java25
Danke @arunprakashpj. Der einzige Befehl, der für aus dem AWS-Repository heruntergeladene Bilder funktioniert hat.
RealPK
36
Ihr Container hat es wahrscheinlich nicht sofort installiert.
Laufen Sie apt-get install vimim Terminal und Sie sollten bereit sein zu gehen.
Bevor Sie 'apt-get install vim' ausführen, müssen Sie 'apt-get update' ausführen.
Benutzer1521213
2
Zuerst apt-get updateDANNapt-get install vim
Yogi Ghorecha
30
Der auszuführende Befehl hängt davon ab, welches Basisimage Sie verwenden.
Für Alpine viwird als Teil des Basisbetriebssystems installiert. Die Installation vimwäre:
apk -U add vim
Für Debian und Ubuntu:
apt-get update && apt-get install -y vim
Für CentOS viwird normalerweise mit dem Basisbetriebssystem installiert. Für vim:
yum install -y vim
Dies sollte nur in der frühen Entwicklung erfolgen. Sobald Sie einen funktionierenden Container erhalten haben, sollten die Änderungen an Dateien an Ihrem Image oder den außerhalb Ihres Containers gespeicherten Konfigurationen vorgenommen werden. Aktualisieren Sie Ihre Docker-Datei und andere Dateien, mit denen ein neues Image erstellt wird. Dies sollte in der Produktion sicherlich nicht erfolgen, da Änderungen im Inneren des Behälters von Natur aus kurzlebig sind und beim Austausch des Behälters verloren gehen.
@ garg10may-Befehle müssen als root ausgeführt werden. USER rootin der Docker-Datei tut dies, aber stellen Sie sicher, dass Sie zu Ihrem anderen Benutzer zurückkehren. Ich bin ein laufender Container:docker exec -u root ...
BMitch
18
BENUTZE DAS:
apt-get update && apt-get install -y vim
Erläuterung des obigen Befehls
apt-get update => Aktualisiert das aktuelle Paket
apt-get install => Installiert das Paket
-y => Übergibt die Berechtigung, die Standardberechtigung wird auf Ja gesetzt.
vim => Name des Pakets, das Sie installieren möchten.
Alternativ können Sie Ihre Docker-Images klein halten, indem Sie keine unnötigen Editoren installieren. Sie können die Dateien über ssh vom Docker-Host zum Container bearbeiten:
vim scp://remoteuser@container-ip//path/to/document
Würde das nicht nur funktionieren, wenn auf dem Container ssh ausgeführt wird ? Anfangs dachte ich, es sei eine brillante Idee, aber ich kann sie anscheinend nicht zum Laufen bringen.
Kevin
7
Verwenden Sie den folgenden Befehl im Debian-basierten Container:
apt-get install vim-tiny
Vollständige Anleitung zur Verwendung in Dockerfile:
Es werden keine unnötigen Pakete installiert und unnötige heruntergeladene Dateien entfernt, sodass die Größe Ihres Docker-Images nicht dramatisch zunimmt.
Um in Ihrem Docker-Container zu installieren, können Sie den Befehl ausführen
docker exec apt-get update && apt-get install -y vim
Dies ist jedoch auf den Container beschränkt, in dem vim installiert ist. Um es allen Containern zur Verfügung zu stellen, bearbeiten Sie die Docker-Datei und fügen Sie sie hinzu
RUN apt-get update && apt-get install -y vim
Sie können das Image auch in der neuen Docker-Datei erweitern und den obigen Befehl hinzufügen. Z.B.
Innerhalb des Containers (im Docker, nicht in der VM) werden diese standardmäßig nicht installiert. Selbst apt-get , wget wird nicht funktionieren. Meine VM läuft unter Ubuntu 17.10. Für mich hat yum package manaager funktioniert.
Yum ist kein Teil von Debian oder Ubuntu. Es ist Teil von Red-Hat. Aber es funktioniert in Ubuntu und ist standardmäßig wie apt-get installiert
Um vim zu installieren, verwenden Sie diesen Befehl
yum install -y vim-enhanced
So deinstallieren Sie vim:
yum uninstall -y vim-enhanced
Ähnlich,
yum install -y wget
yum install -y sudo
-y steht für die Annahme von Ja, wenn Sie nach der Installation des Paketnamens aufgefordert werden, eine Frage zu stellen
Wenn Sie tatsächlich einen kleinen Editor für die einfache Verwaltung in einem Docker benötigen, verwenden Sie diesen in Ihrer Docker-Datei:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
Ich habe es auf einem Ubuntu 18-basierten Docker verwendet. (Natürlich benötigen Sie möglicherweise eine RUN apt-get updatevorher, aber wenn Sie Ihre eigene Docker-Datei erstellen, haben Sie diese wahrscheinlich bereits.)
image
Sie bauen. Höchstwahrscheinlich istimage
Ihre Verwendung so leicht, dass sie nur Dinge enthält, die Sie als Image ausführen müssen. Sie müssen die benötigten Pakete manuell installieren.Antworten:
Melden Sie sich mit dem folgenden Befehl im Container an:
Führen Sie dann den folgenden Befehl aus.
quelle
Ihr Container hat es wahrscheinlich nicht sofort installiert.
Laufen Sie
apt-get install vim
im Terminal und Sie sollten bereit sein zu gehen.quelle
vim-tiny
(Ubuntu)apt-get update
DANNapt-get install vim
Der auszuführende Befehl hängt davon ab, welches Basisimage Sie verwenden.
Für Alpine
vi
wird als Teil des Basisbetriebssystems installiert. Die Installationvim
wäre:Für Debian und Ubuntu:
Für CentOS
vi
wird normalerweise mit dem Basisbetriebssystem installiert. Fürvim
:Dies sollte nur in der frühen Entwicklung erfolgen. Sobald Sie einen funktionierenden Container erhalten haben, sollten die Änderungen an Dateien an Ihrem Image oder den außerhalb Ihres Containers gespeicherten Konfigurationen vorgenommen werden. Aktualisieren Sie Ihre Docker-Datei und andere Dateien, mit denen ein neues Image erstellt wird. Dies sollte in der Produktion sicherlich nicht erfolgen, da Änderungen im Inneren des Behälters von Natur aus kurzlebig sind und beim Austausch des Behälters verloren gehen.
quelle
USER root
in der Docker-Datei tut dies, aber stellen Sie sicher, dass Sie zu Ihrem anderen Benutzer zurückkehren. Ich bin ein laufender Container:docker exec -u root ...
BENUTZE DAS:
Erläuterung des obigen Befehls
quelle
Fügen Sie die folgende Zeile in Ihre Docker-Datei ein und erstellen Sie das Docker-Image neu.
quelle
Alternativ können Sie Ihre Docker-Images klein halten, indem Sie keine unnötigen Editoren installieren. Sie können die Dateien über ssh vom Docker-Host zum Container bearbeiten:
quelle
Verwenden Sie den folgenden Befehl im Debian-basierten Container:
Vollständige Anleitung zur Verwendung in Dockerfile:
Es werden keine unnötigen Pakete installiert und unnötige heruntergeladene Dateien entfernt, sodass die Größe Ihres Docker-Images nicht dramatisch zunimmt.
quelle
Um in Ihrem Docker-Container zu installieren, können Sie den Befehl ausführen
Dies ist jedoch auf den Container beschränkt, in dem vim installiert ist. Um es allen Containern zur Verfügung zu stellen, bearbeiten Sie die Docker-Datei und fügen Sie sie hinzu
Sie können das Image auch in der neuen Docker-Datei erweitern und den obigen Befehl hinzufügen. Z.B.
quelle
Innerhalb des Containers (im Docker, nicht in der VM) werden diese standardmäßig nicht installiert. Selbst apt-get , wget wird nicht funktionieren. Meine VM läuft unter Ubuntu 17.10. Für mich hat yum package manaager funktioniert.
Yum ist kein Teil von Debian oder Ubuntu. Es ist Teil von Red-Hat. Aber es funktioniert in Ubuntu und ist standardmäßig wie apt-get installiert
Um vim zu installieren, verwenden Sie diesen Befehl
So deinstallieren Sie vim:
Ähnlich,
-y steht für die Annahme von Ja, wenn Sie nach der Installation des Paketnamens aufgefordert werden, eine Frage zu stellen
quelle
Wenn Sie tatsächlich einen kleinen Editor für die einfache Verwaltung in einem Docker benötigen, verwenden Sie diesen in Ihrer Docker-Datei:
Ich habe es auf einem Ubuntu 18-basierten Docker verwendet. (Natürlich benötigen Sie möglicherweise eine
RUN apt-get update
vorher, aber wenn Sie Ihre eigene Docker-Datei erstellen, haben Sie diese wahrscheinlich bereits.)quelle
Wenn Sie eine Datei nur einmal ändern müssen. Sie sollten die Änderung lieber lokal vornehmen und mit dieser Datei ein neues Docker-Image erstellen.
Angenommen, Sie müssen in einem Docker-Image eine Datei mit dem Namen myFile.xml unter / path / to / docker / image / ändern. Also musst du tun.
Erstellen Sie dann Ihr eigenes Docker-Image mit
docker build -t docker-repo:v-x.x.x .
Verwenden Sie dann Ihr neu erstelltes Docker-Image.
quelle