Docker'ı ana bilgisayar sanal makineme kurdum. Ve şimdi kullanarak bir dosya oluşturmak istiyorum vi
.
Ama bana bir hata gösteriyor:
bash: vi: command not found
Docker'ı ana bilgisayar sanal makineme kurdum. Ve şimdi kullanarak bir dosya oluşturmak istiyorum vi
.
Ama bana bir hata gösteriyor:
bash: vi: command not found
image
inşa ettiğinize bağlı . Büyük olasılıkla image
kullandığınız o kadar hafiftir ki, yalnızca görüntü olarak çalıştırmanız gereken şeylere sahiptir. İhtiyaç duyduğunuz paketleri manuel olarak yüklemeniz gerekir.
Yanıtlar:
aşağıdaki komutla konteynere giriş yapın:
docker exec -it <container> bash
Ardından aşağıdaki komutu çalıştırın.
apt-get update
apt-get install vim
Konteynırınız muhtemelen kutudan çıkarmamıştır.
apt-get install vim
Terminalde çalıştırın ve gitmeye hazır olmalısınız.
vim-tiny
(Ubuntu)
apt-get update
SONRAapt-get install vim
Çalıştırma komutu, kullandığınız temel görüntüye bağlıdır.
Alpine için, vi
temel işletim sisteminin bir parçası olarak kurulur. Yükleme vim
şu şekilde olacaktır:
apk -U add vim
Debian ve Ubuntu için:
apt-get update && apt-get install -y vim
CentOS için, vi
genellikle temel işletim sistemi ile kurulur. Şunun için vim
:
yum install -y vim
Bu sadece erken gelişimde yapılmalıdır. Çalışan bir kapsayıcı aldığınızda, dosyalarda değişiklikler, kabınızın dışında depolanan görüntünüz veya yapılandırmalarınızda yapılmalıdır. Dockerfile'ınızı ve yeni bir imaj oluşturmak için kullandığı diğer dosyaları güncelleyin. Bu kesinlikle üretimde yapılmamalıdır çünkü kabın içindeki değişiklikler tasarım gereği geçici olduğundan ve kap değiştirildiğinde kaybolacaktır.
USER root
Dockerfile içinde bunu yapar, ancak diğer kullanıcınıza geri döndüğünüzden emin olun. Ben çalışan bir konteynırım:docker exec -u root ...
BUNU KULLAN:
apt-get update && apt-get install -y vim
Yukarıdaki komutun açıklaması
Alternatif olarak, gereksiz düzenleyiciler kurmayarak docker imajlarınızı küçük tutun. Docker ana bilgisayarından kapsayıcıya ssh üzerinden dosyaları düzenleyebilirsiniz:
vim scp://remoteuser@container-ip//path/to/document
Debian tabanlı kapsayıcıda aşağıdaki komutu kullanın:
apt-get install vim-tiny
Dockerfile'da kullanmak için eksiksiz talimat:
RUN apt-get update && apt-get install --no-install-recommends -y \
vim-tiny \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
Gereksiz paketleri kurmaz ve gereksiz indirilen dosyaları kaldırır, böylece docker imaj boyutunuz önemli ölçüde artmaz.
Docker konteynerinize kurmak için komut çalıştırabilirsiniz
docker exec apt-get update && apt-get install -y vim
Ancak bu, vim'in kurulu olduğu konteyner ile sınırlı olacaktır. Tüm kapsayıcılar için kullanılabilir hale getirmek için Dockerfile'ı düzenleyin ve
RUN apt-get update && apt-get install -y vim
veya ayrıca yeni Dockerfile içindeki görüntüyü genişletebilir ve yukarıdaki komutu ekleyebilirsiniz. Örneğin.
<Resim adı> 'ndan
RUN apt-get update && apt-get install -y vim
Konteynerin içinde (docker'da, VM'de değil), varsayılan olarak bunlar kurulu değildir. Apt-get bile , wget çalışmayacaktır. Sanal makinem Ubuntu 17.10 üzerinde çalışıyor. Benim için yum paket yöneticisi çalıştı.
Yum, debian veya ubuntu'nun bir parçası değildir. Kırmızı şapkanın bir parçası. Ancak, Ubuntu'da çalışır ve apt-get gibi varsayılan olarak kurulur
Tu kur vim, bu komutu kullan
yum install -y vim-enhanced
Vim'i kaldırmak için:
yum uninstall -y vim-enhanced
Benzer şekilde,
yum install -y wget
yum install -y sudo
-y, yum install packagename yaptıktan sonra sorulan herhangi bir soru sorulursa evet varsaymak içindir
Bir docker'da basit temizlik için aslında küçük bir düzenleyici istiyorsanız, bunu Dockerfile'ınızda kullanın:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
Ubuntu 18 tabanlı bir docker üzerinde kullandım. (Elbette RUN apt-get update
ondan öncekine ihtiyacınız olabilir , ancak kendi Docker dosyanızı oluşturuyorsanız, muhtemelen buna zaten sahipsinizdir.)
Bir dosyayı yalnızca bir kez değiştirmeniz gerekirse. Değişikliği yerel olarak yapmayı ve bu dosya ile yeni bir docker görüntüsü oluşturmayı tercih etmelisiniz.
Docker görüntüsünde, / yol / / docker / image / altındaki myFile.xml adlı dosyayı değiştirmeniz gerektiğini söyleyin. Yani yapman gerekiyor.
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
Ardından kendi docker görüntünüzü oluşturun docker build -t docker-repo:v-x.x.x .
Ardından yeni oluşturduğunuz docker imajınızı kullanın.