He instalado Docker en mi máquina virtual host. Y ahora quiero crear un archivo usando vi
.
Pero me muestra un error:
bash: vi: command not found
He instalado Docker en mi máquina virtual host. Y ahora quiero crear un archivo usando vi
.
Pero me muestra un error:
bash: vi: command not found
image
dónde esté construyendo. Lo más probable image
es que esté utilizando es tan ligero que solo tiene cosas que necesita para ejecutar como una imagen. Necesita instalar manualmente los paquetes que necesita.
Respuestas:
inicie sesión en el contenedor con el siguiente comando:
docker exec -it <container> bash
Luego, ejecute el siguiente comando.
apt-get update
apt-get install vim
Es probable que su contenedor no lo haya instalado de fábrica.
Ejecutar apt-get install vim
en la terminal y debería estar listo para comenzar.
vim-tiny
(Ubuntu)
apt-get update
ENTONCESapt-get install vim
El comando para ejecutar depende de la imagen base que esté utilizando.
Para Alpine, vi
se instala como parte del sistema operativo base. La instalación vim
sería:
apk -U add vim
Para Debian y Ubuntu:
apt-get update && apt-get install -y vim
Para CentOS, vi
generalmente se instala con el sistema operativo base. Para vim
:
yum install -y vim
Esto solo debe hacerse en el desarrollo temprano. Una vez que obtenga un contenedor que funcione, los cambios en los archivos deben realizarse en su imagen o configuraciones almacenadas fuera de su contenedor. Actualice su Dockerfile y otros archivos que utiliza para crear una nueva imagen. Esto ciertamente no debería hacerse en producción, ya que los cambios dentro del contenedor son efímeros por diseño y se perderán cuando se reemplace el contenedor.
USER root
dentro del Dockerfile hace esto, pero asegúrese de volver a su otro usuario. Soy un contenedor en ejecución:docker exec -u root ...
UTILIZAR ESTA:
apt-get update && apt-get install -y vim
Explicación del comando anterior
Alternativamente, mantenga las imágenes de la ventana acoplable pequeñas al no instalar editores innecesarios. Puede editar los archivos a través de ssh desde el host de la ventana acoplable al contenedor:
vim scp://remoteuser@container-ip//path/to/document
Utilice el siguiente comando en un contenedor basado en Debian:
apt-get install vim-tiny
Instrucciones completas para usar en Dockerfile:
RUN apt-get update && apt-get install --no-install-recommends -y \
vim-tiny \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
No instala paquetes innecesarios y elimina los archivos descargados innecesarios, por lo que el tamaño de la imagen de la ventana acoplable no aumentará drásticamente.
Para instalar dentro de su contenedor Docker, puede ejecutar el comando
docker exec apt-get update && apt-get install -y vim
Pero esto se limitará al contenedor en el que está instalado vim. Para que esté disponible para todos los contenedores, edite el Dockerfile y agregue
EJECUTAR apt-get update && apt-get install -y vim
o también puede extender la imagen en el nuevo Dockerfile y agregar el comando anterior. P.ej.
DESDE <nombre de la imagen>
EJECUTAR apt-get update && apt-get install -y vim
Dentro del contenedor (en la ventana acoplable, no en la VM), estos no están instalados por defecto. Incluso apt-get , wget no funcionará. Mi máquina virtual se ejecuta en Ubuntu 17.10. Para mi ñam paquete manaager funcionó.
Yum no es parte de debian o ubuntu. Es parte de Red-Hat. Pero funciona en Ubuntu y se instala de forma predeterminada como apt-get
Para instalar vim, use este comando
yum install -y vim-enhanced
Para desinstalar vim:
yum uninstall -y vim-enhanced
Similar,
yum install -y wget
yum install -y sudo
-y es para asumir que sí si se le solicita cualquier qustion después de hacer yum install packagename
Si realmente desea un editor pequeño para una limpieza simple en una ventana acoplable, use esto en su Dockerfile:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
Lo usé en una ventana acoplable basada en Ubuntu 18. (Por supuesto, es posible que necesite un RUN apt-get update
antes, pero si está creando su propio archivo Docker, probablemente ya lo tenga).
Si necesita cambiar un archivo solo una vez. Debería preferir realizar el cambio localmente y crear una nueva imagen de la ventana acoplable con este archivo.
Digamos que en una imagen de la ventana acoplable, necesita cambiar un archivo llamado myFile.xml en / ruta / a / docker / image /. Entonces, debes hacerlo.
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
Luego construya su propia imagen de Docker con docker build -t docker-repo:v-x.x.x .
Luego, use su imagen de ventana acoplable recién compilada.