O vi não pode ser instalado dentro do contêiner. Qual contêiner você instalou e executou?
Hüseyin BABAL
1
Você tem que ser mais específico. Você está tentando executar o vi dentro de um container? Em caso afirmativo, em qual imagem o container é baseado? Provavelmente você não tem o vi instalado. (apt-get install vim)
wpp de
Depende de onde imagevocê está construindo. Muito provavelmente imagevocê está usando é tão mais leve que só tem coisas que você precisa para rodar como imagem. Você precisa instalar manualmente os pacotes necessários.
ilusionista de
3
Você provavelmente não deveria fazer configuração dentro de um contêiner. Em vez disso, faça isso no Dockerfile.
Se você encontrar um problema de permissão negada ao executar apt-get, é necessário executar docker exec como root. "docker exec -u root -it <container> bash". Então o apt-get deve funcionar.
java25 de
Obrigado @arunprakashpj. O único comando que funcionou para imagem baixada do repositório AWS.
realPK
37
Seu contêiner provavelmente não o instalou fora da caixa.
Execute apt-get install vimno terminal e você deve estar pronto para ir.
Antes de executar 'apt-get install vim', você precisa executar 'apt-get update'.
user1521213
2
Primeiro apt-get updateENTÃOapt-get install vim
Yogi Ghorecha
32
O comando a ser executado depende de qual imagem de base você está usando.
Para Alpine, vié instalado como parte do sistema operacional de base. A instalação vimseria:
apk -U add vim
Para Debian e Ubuntu:
apt-get update && apt-get install -y vim
Para CentOS, vigeralmente é instalado com o sistema operacional de base. Para vim:
yum install -y vim
Isso só deve ser feito no início do desenvolvimento. Depois de obter um contêiner funcional, as alterações nos arquivos devem ser feitas em sua imagem ou configurações armazenadas fora do contêiner. Atualize seu Dockerfile e outros arquivos que ele usa para construir uma nova imagem. Isso certamente não deve ser feito na produção, já que as alterações dentro do contêiner são efêmeras por design e serão perdidas quando o contêiner for substituído.
ERRO: Não é possível bloquear o banco de dados: permissão negada
garg10may
1
Os comandos @ garg10may precisam ser executados como root. USER rootdentro do Dockerfile faz isso, mas certifique-se de voltar para o outro usuário. Sou um contêiner em execução:docker exec -u root ...
BMitch
21
USA ISTO:
apt-get update && apt-get install -y vim
Explicação do comando acima
apt-get update => Irá atualizar o pacote atual
apt-get install => Irá instalar o pacote
-y => Irá ignorar a permissão, a permissão padrão será definida como Sim.
Como alternativa, mantenha as imagens do docker pequenas, não instalando editores desnecessários. Você pode editar os arquivos por ssh do host docker para o contêiner:
vim scp://remoteuser@container-ip//path/to/document
Dentro do contêiner (no docker, não na VM), por padrão, eles não são instalados. Mesmo o apt-get , o wget não funcionará. Minha VM está sendo executada no Ubuntu 17.10. Para mim yum pacote manaager trabalhou.
Yum não faz parte do debian ou do ubuntu. Faz parte do chapéu vermelho. Mas, ele funciona no Ubuntu e é instalado por padrão como apt-get
Instale o vim, use este comando
yum install -y vim-enhanced
Para desinstalar o vim:
yum uninstall -y vim-enhanced
Similarmente,
yum install -y wget
yum install -y sudo
-y é para presumir que sim se for solicitado por qualquer pergunta feita após fazer yum install packagename
Se você realmente deseja um pequeno editor para manutenção simples em um docker, use-o em seu Dockerfile:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
Eu usei em um docker baseado no Ubuntu 18. (Claro que você pode precisar de um RUN apt-get updateantes, mas se estiver fazendo seu próprio arquivo Docker, provavelmente já o tem.)
Se você precisar alterar um arquivo apenas uma vez. Você deve preferir fazer a alteração localmente e criar uma nova imagem do docker com esse arquivo.
Digamos que em uma imagem docker, você precise alterar um arquivo denominado myFile.xml em / path / para / docker / image /. Então, você precisa fazer.
Copie myFile.xml em seu sistema de arquivos local e faça as alterações necessárias.
Crie um arquivo chamado 'Dockerfile' com o seguinte conteúdo-
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
Em seguida, crie sua própria imagem docker com docker build -t docker-repo:v-x.x.x .
image
você está construindo. Muito provavelmenteimage
você está usando é tão mais leve que só tem coisas que você precisa para rodar como imagem. Você precisa instalar manualmente os pacotes necessários.Respostas:
Faça login no contêiner com o seguinte comando:
Em seguida, execute o seguinte comando.
fonte
Seu contêiner provavelmente não o instalou fora da caixa.
Execute
apt-get install vim
no terminal e você deve estar pronto para ir.fonte
vim-tiny
(Ubuntu)apt-get update
ENTÃOapt-get install vim
O comando a ser executado depende de qual imagem de base você está usando.
Para Alpine,
vi
é instalado como parte do sistema operacional de base. A instalaçãovim
seria:Para Debian e Ubuntu:
Para CentOS,
vi
geralmente é instalado com o sistema operacional de base. Paravim
:Isso só deve ser feito no início do desenvolvimento. Depois de obter um contêiner funcional, as alterações nos arquivos devem ser feitas em sua imagem ou configurações armazenadas fora do contêiner. Atualize seu Dockerfile e outros arquivos que ele usa para construir uma nova imagem. Isso certamente não deve ser feito na produção, já que as alterações dentro do contêiner são efêmeras por design e serão perdidas quando o contêiner for substituído.
fonte
USER root
dentro do Dockerfile faz isso, mas certifique-se de voltar para o outro usuário. Sou um contêiner em execução:docker exec -u root ...
USA ISTO:
Explicação do comando acima
fonte
bash: apt-get: command not found
apk add
Adicione a seguinte linha em seu Dockerfile e reconstrua a imagem do docker.
fonte
Como alternativa, mantenha as imagens do docker pequenas, não instalando editores desnecessários. Você pode editar os arquivos por ssh do host docker para o contêiner:
fonte
Use o comando abaixo no contêiner baseado em Debian:
Instruções completas para usar no Dockerfile:
Ele não instala pacotes desnecessários e remove arquivos baixados desnecessários, então o tamanho da imagem do docker não aumentará drasticamente.
fonte
Para instalar dentro do seu contêiner Docker, você pode executar o comando
Mas isso será limitado ao contêiner em que o vim está instalado. Para torná-lo disponível para todos os contêineres, edite o Dockerfile e adicione
ou você também pode estender a imagem no novo Dockerfile e adicionar o comando acima. Por exemplo.
fonte
Dentro do contêiner (no docker, não na VM), por padrão, eles não são instalados. Mesmo o apt-get , o wget não funcionará. Minha VM está sendo executada no Ubuntu 17.10. Para mim yum pacote manaager trabalhou.
Yum não faz parte do debian ou do ubuntu. Faz parte do chapéu vermelho. Mas, ele funciona no Ubuntu e é instalado por padrão como apt-get
Instale o vim, use este comando
Para desinstalar o vim:
Similarmente,
-y é para presumir que sim se for solicitado por qualquer pergunta feita após fazer yum install packagename
fonte
Se você realmente deseja um pequeno editor para manutenção simples em um docker, use-o em seu Dockerfile:
Eu usei em um docker baseado no Ubuntu 18. (Claro que você pode precisar de um
RUN apt-get update
antes, mas se estiver fazendo seu próprio arquivo Docker, provavelmente já o tem.)fonte
Se você precisar alterar um arquivo apenas uma vez. Você deve preferir fazer a alteração localmente e criar uma nova imagem do docker com esse arquivo.
Digamos que em uma imagem docker, você precise alterar um arquivo denominado myFile.xml em / path / para / docker / image /. Então, você precisa fazer.
Em seguida, crie sua própria imagem docker com
docker build -t docker-repo:v-x.x.x .
Em seguida, use sua imagem docker recém-criada.
fonte