Я встановив докер на моїй віртуальній машині. А тепер хочу створити файл за допомогою vi
.
Але це показує мені помилку:
bash: vi: command not found
Я встановив докер на моїй віртуальній машині. А тепер хочу створити файл за допомогою vi
.
Але це показує мені помилку:
bash: vi: command not found
image
ви будуєте. Швидше за все, image
ви використовуєте настільки легше, що в ньому є лише те, що потрібно для запуску як зображення. Вам потрібно вручну встановити необхідні пакунки.
Відповіді:
увійдіть в контейнер за допомогою наступної команди:
docker exec -it <container> bash
Потім запустіть таку команду.
apt-get update
apt-get install vim
Ваш контейнер, ймовірно, не встановив його з коробки.
Запустіть apt-get install vim
термінал, і ви повинні бути готові до роботи.
vim-tiny
(Ubuntu)
apt-get update
THENapt-get install vim
Команда для запуску залежить від того, яке базове зображення ви використовуєте.
Для Alpine vi
встановлюється як частина базової ОС. Встановлення vim
буде:
apk -U add vim
Для Debian та Ubuntu:
apt-get update && apt-get install -y vim
Для CentOS, vi
як правило, встановлюється з базовою ОС. Для vim
:
yum install -y vim
Це слід робити лише на початку розвитку. Отримавши робочий контейнер, зміни у файлах слід внести у ваше зображення або конфігурації, що зберігаються поза вашим контейнером. Оновіть файл Docker та інші файли, які він використовує для створення нового образу. Цього, безумовно, не слід робити на виробництві, оскільки зміни всередині контейнера є дизайнерськими і будуть втрачені при заміні контейнера.
USER root
всередині Dockerfile робить це, але обов’язково поверніться до іншого користувача. Я біжучий контейнер:docker exec -u root ...
ВИКОРИСТОВУЙ ЦЕ:
apt-get update && apt-get install -y vim
Пояснення наведеної команди
Також можна зменшити зображення докера, не встановлюючи зайвих редакторів. Ви можете редагувати файли через ssh з хоста докера в контейнер:
vim scp://remoteuser@container-ip//path/to/document
Використовуйте команду нижче в контейнері на основі Debian:
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 ви можете запустити команду
docker exec apt-get update && apt-get install -y vim
Але це буде обмежено контейнером, в якому встановлено vim. Щоб зробити його доступним для всіх контейнерів, відредагуйте файл Docker і додайте
ЗАПУСТИТИ apt-get update && apt-get install -y vim
або ви також можете розширити зображення в новому файлі Docker і додати вищезазначену команду. Напр.
ВІД <назва зображення>
ЗАПУСТИТИ apt-get update && apt-get install -y vim
Усередині контейнера (у докері, а не у віртуальній машині) за замовчуванням вони не встановлені. Навіть apt-get , wget не буде працювати. Моя віртуальна машина працює на Ubuntu 17.10. Для мене ні пакета manaager працював.
Yum не є частиною debian або ubuntu. Це частина червоного капелюха. Але це працює в Ubuntu і за замовчуванням встановлюється як apt-get
Щоб встановити vim, використовуйте цю команду
yum install -y vim-enhanced
Щоб видалити vim:
yum uninstall -y vim-enhanced
Так само,
yum install -y wget
yum install -y sudo
-y - це припущення так, якщо вам буде запропоновано будь-яке запитання після запиту yum install name
Якщо ви насправді хочете невеликий редактор для простого ведення домашнього господарства в Docker, використовуйте це у своєму Dockerfile:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
Я використовував його на докері на базі Ubuntu 18. (Звичайно, вам може знадобитися RUN apt-get update
перед цим, але якщо ви створюєте власний файл Docker, ви, напевно, це вже маєте.)
Якщо вам потрібно змінити файл лише один раз. Вам слід віддати перевагу вносити зміни локально та створити новий образ докера за допомогою цього файлу.
Скажімо, у зображенні докера вам потрібно змінити файл з іменем myFile.xml під / path / to / docker / image /. Отже, вам потрібно це зробити.
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
Потім створіть власний образ докера за допомогою docker build -t docker-repo:v-x.x.x .
Потім використовуйте ваш щойно побудований образ докера.