Ответ 1
войдите в контейнер со следующей командой:
docker exec -it <container> bash
Затем запустите следующую команду.
apt-get update
apt-get install vim
Я установил докер на свою виртуальную машину. И теперь вы хотите создать файл с помощью vi
.
Но это покажет мне ошибку:
bash: vi: command not found
войдите в контейнер со следующей командой:
docker exec -it <container> bash
Затем запустите следующую команду.
apt-get update
apt-get install vim
Возможно, ваш контейнер не установлен из коробки.
Запустите 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
Это должно быть сделано только в раннем развитии. После того, как вы получите рабочий контейнер, изменения в файлах должны быть сделаны на вашем изображении или в конфигах, хранящихся вне вашего контейнера. Обновите файл Docker и другие файлы, которые он использует для создания нового изображения. Это, конечно же, не должно производиться на производстве, так как изменения внутри контейнера являются эфемерными конструкциями и будут потеряны при замене контейнера.
Добавьте следующую строку в ваш Dockerfile и перестройте образ Docker.
RUN apt-get update && apt-get install -y vim
В качестве альтернативы, уменьшите ваши изображения докеров, не устанавливая ненужных редакторов. Вы можете редактировать файлы через ssh с хоста докера в контейнер:
vim scp://[email protected]//path/to/document
Для установки в контейнер Docker вы можете запустить команду
docker exec apt-get update && & && & apt-get install -y vim
Но это будет ограничено контейнером, в котором установлен vim. Чтобы сделать его доступным для всех контейнеров, отредактируйте файл Docker и добавьте
RUN apt-get update && & & apt-get install -y vim
или вы также можете расширить изображение в новом файле Docker и добавить команду выше. Например.
FROM < название изображения >
RUN 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
Удалить
yum install -y vim-enhanced
Так же,
yum install -y wget
yum install -y sudo
-y предназначен для предположения "да", если после выполнения команды yum install packagename запрашивается любое количество вопросов.
Используйте это:
apt-get update && apt-get install -y vim
Объяснение вышеуказанной команды
У меня была такая же проблема при попытке добавить свойство в файл server.properties внутри контейнера, и мое решение было:
echo "pinkUnicorn" >> file
Это добавит pinkUnicorn в конец файла.
PS: Я знаю, что это особый случай, но это может сэкономить кому-то время.