vi no se puede instalar dentro del contenedor. ¿Qué contenedor ha instalado y ejecutado?
Hüseyin BABAL
1
Tienes que ser más específico. ¿Está intentando ejecutar vi dentro de un contenedor, si es así, en qué imagen se basa el contenedor? Es muy probable que no tenga instalado vi. (apt-get install vim)
wpp
Depende de desde imagedónde esté construyendo. Lo más probable imagees que esté utilizando es tan ligero que solo tiene cosas que necesita para ejecutar como una imagen. Necesita instalar manualmente los paquetes que necesita.
ilusionista
3
Probablemente no deberías hacer una configuración dentro de un contenedor. En su lugar, hágalo en el Dockerfile.
Si encuentra un problema de permiso denegado mientras ejecuta apt-get, debe ejecutar docker exec como root. "docker exec -u root -it <contenedor> bash". Entonces apt-get debería funcionar.
java25
Gracias @arunprakashpj. El único comando que funcionó para la imagen descargada del repositorio de AWS.
realPK
36
Es probable que su contenedor no lo haya instalado de fábrica.
Ejecutar apt-get install vimen la terminal y debería estar listo para comenzar.
Antes de ejecutar 'apt-get install vim', debe ejecutar 'apt-get update'.
user1521213
2
Primero apt-get updateENTONCESapt-get install vim
Yogi Ghorecha
30
El comando para ejecutar depende de la imagen base que esté utilizando.
Para Alpine, vise instala como parte del sistema operativo base. La instalación vimsería:
apk -U add vim
Para Debian y Ubuntu:
apt-get update && apt-get install -y vim
Para CentOS, vigeneralmente 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.
ERROR: No se puede bloquear la base de datos: Permiso denegado
garg10may
1
Los comandos @ garg10may deben ejecutarse como root. USER rootdentro del Dockerfile hace esto, pero asegúrese de volver a su otro usuario. Soy un contenedor en ejecución:docker exec -u root ...
BMitch
19
UTILIZAR ESTA:
apt-get update && apt-get install -y vim
Explicación del comando anterior
apt-get update => Actualizará el paquete actual
apt-get install => Instalará el paquete
-y => Pasará el permiso, el permiso predeterminado se establecerá en Sí.
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
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.
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 updateantes, 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.
Copie myFile.xml en su sistema de archivos local y realice los cambios necesarios.
Cree un archivo llamado 'Dockerfile' con el siguiente contenido:
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.
image
dónde esté construyendo. Lo más probableimage
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:
Luego, ejecute el siguiente comando.
fuente
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.fuente
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ónvim
sería:Para Debian y Ubuntu:
Para CentOS,
vi
generalmente se instala con el sistema operativo base. Paravim
: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.
fuente
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:
Explicación del comando anterior
fuente
Agregue la siguiente línea en su Dockerfile y luego reconstruya la imagen de la ventana acoplable.
fuente
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:
fuente
Utilice el siguiente comando en un contenedor basado en Debian:
Instrucciones completas para usar en Dockerfile:
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.
fuente
Para instalar dentro de su contenedor Docker, puede ejecutar el comando
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
o también puede extender la imagen en el nuevo Dockerfile y agregar el comando anterior. P.ej.
fuente
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
Para desinstalar vim:
Similar,
-y es para asumir que sí si se le solicita cualquier qustion después de hacer yum install packagename
fuente
Si realmente desea un editor pequeño para una limpieza simple en una ventana acoplable, use esto en su Dockerfile:
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).fuente
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.
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.
fuente