Я установил докер на свою виртуальную машину. А теперь хочу создать файл, используя 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
ТОapt-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
Это следует делать только на ранней стадии разработки. Как только вы получите рабочий контейнер, изменения файлов должны быть внесены в ваш образ или конфигурации, хранящиеся вне вашего контейнера. Обновите свой Dockerfile и другие файлы, которые он использует для создания нового образа. Это определенно не следует делать в производственной среде, поскольку изменения внутри контейнера являются недолговечными и будут потеряны при замене контейнера.
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. Чтобы сделать его доступным для всех контейнеров, отредактируйте Dockerfile и добавьте
ЗАПУСТИТЬ apt-get update && apt-get install -y vim
или вы также можете расширить образ в новом Dockerfile и добавить команду выше. Например.
ОТ <имя изображения>
ЗАПУСТИТЬ apt-get update && apt-get install -y vim
Внутри контейнера (в докере, а не в виртуальной машине) по умолчанию они не установлены. Даже apt-get , wget работать не будет. Моя виртуальная машина работает на Ubuntu 17.10. Для меня ни пакета manaager работал.
Yum не является частью debian или ubuntu. Это часть красной шляпы. Но он работает в Ubuntu и по умолчанию устанавливается как apt-get
Tu install vim, используйте эту команду
yum install -y vim-enhanced
Чтобы удалить vim:
yum uninstall -y vim-enhanced
По аналогии,
yum install -y wget
yum install -y sudo
-y означает, что да, если будет предложено ввести любой запрос после выполнения yum install packagename
Если вам действительно нужен небольшой редактор для простого обслуживания в докере, используйте его в своем Dockerfile:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
Я использовал его на докере на базе Ubuntu 18. (Конечно, вам может понадобиться RUN apt-get update
перед этим, но если вы создаете свой собственный файл Docker, у вас, вероятно, он уже есть.)
Если вам нужно изменить файл только один раз. Вы должны предпочесть вносить изменения локально и создать новый образ докера с этим файлом.
Скажем, в образе докера вам нужно изменить файл с именем myFile.xml в / path / на / docker / image /. Итак, что вам нужно сделать.
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
Затем создайте свой собственный образ докера с помощью docker build -t docker-repo:v-x.x.x .
Затем используйте созданный вами образ докеры.