Ich habe Docker auf meiner virtuellen Hostmaschine installiert. Und jetzt wollen Sie eine Datei mit erstellen vi
.
Aber es zeigt mir einen Fehler:
bash: vi: command not found
Ich habe Docker auf meiner virtuellen Hostmaschine installiert. Und jetzt wollen Sie eine Datei mit erstellen vi
.
Aber es zeigt mir einen Fehler:
bash: vi: command not found
image
Sie bauen. Höchstwahrscheinlich ist image
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:
docker exec -it <container> bash
Führen Sie dann den folgenden Befehl aus.
apt-get update
apt-get install vim
Ihr Container hat es wahrscheinlich nicht sofort installiert.
Laufen Sie apt-get install vim
im Terminal und Sie sollten bereit sein zu gehen.
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 Installation vim
wäre:
apk -U add vim
Für Debian und Ubuntu:
apt-get update && apt-get install -y vim
Für CentOS vi
wird 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.
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:
apt-get update && apt-get install -y vim
Erläuterung des obigen Befehls
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
Verwenden Sie den folgenden Befehl im Debian-basierten Container:
apt-get install vim-tiny
Vollständige Anleitung zur Verwendung in Dockerfile:
RUN apt-get update && apt-get install --no-install-recommends -y \
vim-tiny \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
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.
FROM <Bildname>
RUN apt-get update && apt-get install -y vim
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 update
vorher, aber wenn Sie Ihre eigene Docker-Datei erstellen, haben Sie diese wahrscheinlich bereits.)
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.
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
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.