A execução do "motor" do docker exige sudo
constante execução durante o desenvolvimento? É isso que você está fazendo? Você faz isso sudo -i
ao operar o docker? Ou você define um cronômetro no sudo? Existe uma maneira segura de operá-lo com mais facilidade, por exemplo, habilitando um gerenciador de chave/senha?
Fundo
Tendo seguido o incentivo do site Docker para instalar o "desktop" (até mesmo o endpoint da URL do "mecanismo" vincula-se ao desktop, embora também ao mecanismo), encontrei algumas situações que me fizeram considerar o uso do mecanismo apenas no meu Linux:
- constantemente sendo solicitada uma senha para desktop ao inicializar uma passagem de credencial com GPG - 'corrigida' com seahorse/pass.
- exigindo
sudo
se estiver usando o mecanismo - pode ser corrigido com um grupo , embora isso seja arriscado . - executando dois contextos docker: default (engine) e desktop-linux - pode ser alternado, mas ainda solicita
sudo
. - motor e desktop mostrando duas listas diferentes
docker context ls
- podem ser resolvidos criando um contexto de usuário root para o mesmo endpoint do docker.
Isso me tornou mais consciente das diferenças, descritas um pouco nos documentos e no fórum do docker .
1. Não é como o docker na máquina host como root
O desktop Docker é mais seguro (apenas) porque é executado em uma máquina virtual . Isso significa que um usuário comprometido com acesso ao docker-desktop só pode causar danos aos contêineres do docker e ao mecanismo do docker, e não a todo o sistema host.
Portanto, um daemon docker executado como root no sistema host sempre terá essa vulnerabilidade de segurança. Essa é apenas a natureza disso.
Pelo menos isso, rodando como um daemon root no host sem um contêiner VirtualMachine, sempre o levará a um terminal root:
2. Docker Engine (sem Desktop) em uma máquina virtual
Não há nada que impeça você de executar o docker em uma máquina virtual, embora seja necessário trabalhar a semântica para fazer as montagens de ligação funcionarem.
3. Docker não raiz
Sua outra opção é executar o docker como um usuário não root. Isso deve significar que o próprio docker terá muito menos acesso ao seu sistema, mas adicionará limitações ao que você pode executar dentro do docker. Veja aqui: https://docs.docker.com/engine/security/rootless/
4. Crie um usuário docker dedicado e protegido por senha
Crie um usuário dedicado com o qual você acessa