Как запустить vi на контейнер-докер?

Я установил докер на свою виртуальную машину. И теперь вы хотите создать файл с помощью vi.

Но это покажет мне ошибку:

bash: vi: command not found

Ответы

Ответ 1

войдите в контейнер со следующей командой:

docker exec -it <container> bash

Затем запустите следующую команду.

apt-get update
apt-get install vim

Ответ 2

Возможно, ваш контейнер не установлен из коробки.

Запустите apt-get install vim в терминале, и вы должны быть готовы к работе.

Ответ 3

Команда для запуска зависит от того, какое базовое изображение вы используете.

Для 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 и другие файлы, которые он использует для создания нового изображения. Это, конечно же, не должно производиться на производстве, так как изменения внутри контейнера являются эфемерными конструкциями и будут потеряны при замене контейнера.

Ответ 4

Добавьте следующую строку в ваш Dockerfile и перестройте образ Docker.

RUN apt-get update && apt-get install -y vim

Ответ 5

В качестве альтернативы, уменьшите ваши изображения докеров, не устанавливая ненужных редакторов. Вы можете редактировать файлы через ssh с хоста докера в контейнер:

vim scp://[email protected]//path/to/document

Ответ 6

Для установки в контейнер 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

Ответ 7

Внутри контейнера (в докере, а не в ВМ) по умолчанию они не установлены. Даже 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 запрашивается любое количество вопросов.

Ответ 8

Используйте это:

apt-get update && apt-get install -y vim

Объяснение вышеуказанной команды

  1. apt-get update => Обновит текущий пакет
  2. apt-get install => Установит пакет
  3. -y => Будет пропущено разрешение, для разрешения по умолчанию будет установлено значение Да.
  4. vim => Имя пакета, который вы хотите установить.

Ответ 9

У меня была такая же проблема при попытке добавить свойство в файл server.properties внутри контейнера, и мое решение было:

echo "pinkUnicorn" >> file

Это добавит pinkUnicorn в конец файла.

PS: Я знаю, что это особый случай, но это может сэкономить кому-то время.