Eu instalei o docker na minha máquina virtual host. E agora deseja criar um arquivo usando vi
.
Mas está me mostrando um erro:
bash: vi: command not found
Eu instalei o docker na minha máquina virtual host. E agora deseja criar um arquivo usando vi
.
Mas está me mostrando um erro:
bash: vi: command not found
image
você está construindo. Muito provavelmente image
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:
docker exec -it <container> bash
Em seguida, execute o seguinte comando.
apt-get update
apt-get install vim
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.
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ção vim
seria:
apk -U add vim
Para Debian e Ubuntu:
apt-get update && apt-get install -y vim
Para CentOS, vi
geralmente é 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.
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:
apt-get update && apt-get install -y vim
Explicação do comando acima
bash: apt-get: command not found
apk add
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
Use o comando abaixo no contêiner baseado em Debian:
apt-get install vim-tiny
Instruções completas para usar no Dockerfile:
RUN apt-get update && apt-get install --no-install-recommends -y \
vim-tiny \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
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.
Para instalar dentro do seu contêiner Docker, você pode executar o comando
docker exec apt-get update && apt-get install -y vim
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
RUN apt-get update && apt-get install -y vim
ou você também pode estender a imagem no novo Dockerfile e adicionar o comando acima. Por exemplo.
DE <nome da imagem>
RUN apt-get update && apt-get install -y vim
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 update
antes, 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.
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 .
Em seguida, use sua imagem docker recém-criada.