vi mungkin tidak dipasang di dalam wadah. Container mana yang sudah Anda pasang dan jalankan?
Hüseyin BABAL
1
Anda harus lebih spesifik. Apakah Anda mencoba menjalankan vi di dalam container, jika ya, gambar mana yang menjadi dasar container? Kemungkinan besar Anda belum menginstal vi. (apt-get install vim)
wpp
Itu tergantung dari mana imageAnda membangun. Kemungkinan besar yang imageAnda gunakan sangat ringan sehingga hanya memiliki hal-hal yang Anda butuhkan untuk dijalankan sebagai gambar. Anda perlu menginstal paket yang Anda butuhkan secara manual.
ilusionis
3
Anda mungkin tidak boleh melakukan config di dalam container. Lakukan di Dockerfile sebagai gantinya.
Jika Anda mengalami masalah izin ditolak saat menjalankan apt-get, Anda perlu menjalankan docker exec sebagai root. "buruh pelabuhan exec -u root -it <container> bash". Maka apt-get seharusnya berfungsi.
java25
Terima kasih @arunprakashpj. Satu-satunya perintah yang berfungsi untuk gambar yang diunduh dari penyimpanan AWS.
realPK
37
Penampung Anda mungkin belum memasangnya di luar kotak.
Jalankan apt-get install vimdi terminal dan Anda harus siap untuk pergi.
Sebelum menjalankan 'apt-get install vim', Anda perlu menjalankan 'apt-get update'.
pengguna1521213
2
Pertama apt-get updateKEMUDIANapt-get install vim
Yogi Ghorecha
32
Perintah untuk menjalankan tergantung pada gambar dasar yang Anda gunakan.
Untuk Alpine, vidiinstal sebagai bagian dari OS dasar. Instalasi vimakan menjadi:
apk -U add vim
Untuk Debian dan Ubuntu:
apt-get update && apt-get install -y vim
Untuk CentOS, vibiasanya dipasang dengan base OS. Untuk vim:
yum install -y vim
Ini seharusnya hanya dilakukan pada pengembangan awal. Setelah Anda mendapatkan wadah yang berfungsi, perubahan pada file harus dilakukan pada gambar atau konfigurasi yang disimpan di luar wadah Anda. Perbarui Dockerfile Anda dan file lain yang digunakannya untuk membuat image baru. Hal ini tentunya tidak boleh dilakukan dalam produksi karena perubahan di dalam wadah bersifat sementara dan akan hilang saat wadah diganti.
KESALAHAN: Tidak dapat mengunci basis data: Izin ditolak
garg10may
1
Perintah @ garg10may harus dijalankan sebagai root. USER rootdi dalam Dockerfile melakukan ini, tetapi pastikan untuk beralih kembali ke pengguna Anda yang lain. Saya adalah wadah yang sedang berjalan:docker exec -u root ...
BMitch
21
GUNAKAN INI:
apt-get update && apt-get install -y vim
Penjelasan perintah di atas
apt-get update => Akan memperbarui paket saat ini
apt-get install => Akan menginstal paket
-y => Akankah lewat izin, izin default akan diatur ke Ya.
Atau, pertahankan gambar buruh pelabuhan Anda kecil dengan tidak memasang editor yang tidak perlu. Anda dapat mengedit file melalui ssh dari host buruh pelabuhan ke penampung:
vim scp://remoteuser@container-ip//path/to/document
Itu tidak menginstal paket yang tidak perlu dan menghapus file yang tidak perlu diunduh, sehingga ukuran gambar buruh pelabuhan Anda tidak akan meningkat secara dramatis.
Di dalam container (di buruh pelabuhan, bukan di VM), secara default ini tidak diinstal. Bahkan apt-get , wget tidak akan berfungsi. VM saya berjalan di Ubuntu 17.10. Bagi saya yum manaager paket berhasil.
Yum bukan bagian dari debian atau ubuntu. Itu bagian dari topi merah. Tapi, ini berfungsi di Ubuntu dan diinstal secara default seperti apt-get
Untuk menginstal vim, gunakan perintah ini
yum install -y vim-enhanced
Untuk menghapus vim:
yum uninstall -y vim-enhanced
Demikian pula,
yum install -y wget
yum install -y sudo
-y untuk asumsi yes jika diminta untuk pertanyaan apa pun yang ditanya setelah melakukan yum install nama paket
Jika Anda benar-benar menginginkan editor kecil untuk pekerjaan rumah sederhana di buruh pelabuhan, gunakan ini di Dockerfile Anda:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
Saya menggunakannya pada buruh pelabuhan berbasis Ubuntu 18. (Tentu saja Anda mungkin memerlukan RUN apt-get updatesebelumnya tetapi jika Anda membuat file Docker Anda sendiri, Anda mungkin sudah memilikinya.)
Jika Anda perlu mengubah file sekali saja. Anda harus memilih melakukan perubahan secara lokal dan membangun image buruh pelabuhan baru dengan file ini.
Katakanlah dalam gambar buruh pelabuhan, Anda perlu mengubah file bernama myFile.xml di bawah / path / to / docker / image /. Jadi, Anda perlu melakukannya.
Salin myFile.xml di sistem file lokal Anda dan lakukan perubahan yang diperlukan.
Buat file bernama 'Dockerfile' dengan konten berikut-
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
Kemudian buat gambar buruh pelabuhan Anda sendiri dengan docker build -t docker-repo:v-x.x.x .
Kemudian gunakan image buruh pelabuhan yang baru Anda buat.
image
Anda membangun. Kemungkinan besar yangimage
Anda gunakan sangat ringan sehingga hanya memiliki hal-hal yang Anda butuhkan untuk dijalankan sebagai gambar. Anda perlu menginstal paket yang Anda butuhkan secara manual.Jawaban:
login ke container dengan perintah berikut:
Kemudian, jalankan perintah berikut.
sumber
Penampung Anda mungkin belum memasangnya di luar kotak.
Jalankan
apt-get install vim
di terminal dan Anda harus siap untuk pergi.sumber
vim-tiny
(Ubuntu)apt-get update
KEMUDIANapt-get install vim
Perintah untuk menjalankan tergantung pada gambar dasar yang Anda gunakan.
Untuk Alpine,
vi
diinstal sebagai bagian dari OS dasar. Instalasivim
akan menjadi:Untuk Debian dan Ubuntu:
Untuk CentOS,
vi
biasanya dipasang dengan base OS. Untukvim
:Ini seharusnya hanya dilakukan pada pengembangan awal. Setelah Anda mendapatkan wadah yang berfungsi, perubahan pada file harus dilakukan pada gambar atau konfigurasi yang disimpan di luar wadah Anda. Perbarui Dockerfile Anda dan file lain yang digunakannya untuk membuat image baru. Hal ini tentunya tidak boleh dilakukan dalam produksi karena perubahan di dalam wadah bersifat sementara dan akan hilang saat wadah diganti.
sumber
USER root
di dalam Dockerfile melakukan ini, tetapi pastikan untuk beralih kembali ke pengguna Anda yang lain. Saya adalah wadah yang sedang berjalan:docker exec -u root ...
GUNAKAN INI:
Penjelasan perintah di atas
sumber
bash: apt-get: command not found
apk add
Tambahkan baris berikut di Dockerfile Anda lalu buat kembali image buruh pelabuhan.
sumber
Atau, pertahankan gambar buruh pelabuhan Anda kecil dengan tidak memasang editor yang tidak perlu. Anda dapat mengedit file melalui ssh dari host buruh pelabuhan ke penampung:
sumber
Gunakan perintah di bawah ini dalam penampung berbasis Debian:
Instruksi lengkap untuk menggunakan di Dockerfile:
Itu tidak menginstal paket yang tidak perlu dan menghapus file yang tidak perlu diunduh, sehingga ukuran gambar buruh pelabuhan Anda tidak akan meningkat secara dramatis.
sumber
Untuk menginstal dalam wadah Docker Anda, Anda dapat menjalankan perintah
Tetapi ini akan terbatas pada wadah tempat vim dipasang. Untuk membuatnya tersedia untuk semua container, edit Dockerfile dan tambahkan
atau Anda juga dapat memperluas image di Dockerfile baru dan menambahkan perintah di atas. Misalnya.
sumber
Di dalam container (di buruh pelabuhan, bukan di VM), secara default ini tidak diinstal. Bahkan apt-get , wget tidak akan berfungsi. VM saya berjalan di Ubuntu 17.10. Bagi saya yum manaager paket berhasil.
Yum bukan bagian dari debian atau ubuntu. Itu bagian dari topi merah. Tapi, ini berfungsi di Ubuntu dan diinstal secara default seperti apt-get
Untuk menginstal vim, gunakan perintah ini
Untuk menghapus vim:
Demikian pula,
-y untuk asumsi yes jika diminta untuk pertanyaan apa pun yang ditanya setelah melakukan yum install nama paket
sumber
Jika Anda benar-benar menginginkan editor kecil untuk pekerjaan rumah sederhana di buruh pelabuhan, gunakan ini di Dockerfile Anda:
Saya menggunakannya pada buruh pelabuhan berbasis Ubuntu 18. (Tentu saja Anda mungkin memerlukan
RUN apt-get update
sebelumnya tetapi jika Anda membuat file Docker Anda sendiri, Anda mungkin sudah memilikinya.)sumber
Jika Anda perlu mengubah file sekali saja. Anda harus memilih melakukan perubahan secara lokal dan membangun image buruh pelabuhan baru dengan file ini.
Katakanlah dalam gambar buruh pelabuhan, Anda perlu mengubah file bernama myFile.xml di bawah / path / to / docker / image /. Jadi, Anda perlu melakukannya.
Kemudian buat gambar buruh pelabuhan Anda sendiri dengan
docker build -t docker-repo:v-x.x.x .
Kemudian gunakan image buruh pelabuhan yang baru Anda buat.
sumber