AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 771525
Accepted
Johan
Johan
Asked: 2024-03-03 20:10:06 +0800 CST2024-03-03 20:10:06 +0800 CST 2024-03-03 20:10:06 +0800 CST

É possível executar o docker engine sem sudo frequente de maneira tão segura quanto o docker desktop?

  • 772

A execução do "motor" do docker exige sudoconstante execução durante o desenvolvimento? É isso que você está fazendo? Você faz isso sudo -iao 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 sudose 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 .

docker
  • 1 1 respostas
  • 40 Views

1 respostas

  • Voted
  1. Best Answer
    Philip Couling
    2024-03-04T02:40:30+08:002024-03-04T02:40:30+08:00
    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:

    docker run -it --rm --privileged --pid=host ubuntu:latest nsenter -at 1
    

    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/

    • Somente os seguintes drivers de armazenamento são suportados:
      • overlay2 (somente se estiver executando o kernel 5.11 ou posterior, ou kernel com sabor do Ubuntu)
      • fuse-overlayfs (somente se estiver executando o kernel 4.18 ou posterior e o fuse-overlayfs estiver instalado)
      • btrfs (somente se estiver executando com kernel 4.18 ou posterior, ou ~/.local/share/docker estiver montado com a opção de montagem user_subvol_rm_allowed) -vfs
    • Cgroup é suportado apenas quando executado com cgroup v2 e systemd. Consulte Limitando recursos.
    • Os seguintes recursos não são suportados:
      • AppArmor
      • Ponto de verificação
      • Rede de sobreposição
      • Expondo portas SCTP
    • Para usar o comando ping, consulte Roteando pacotes de ping.
    • Para expor portas TCP/UDP privilegiadas (< 1024), consulte Expondo portas privilegiadas.
    • O endereço IP mostrado no docker inspeciona tem o namespace dentro do namespace da rede do RootlessKit. Isso significa que o > - endereço IP não pode ser acessado pelo host sem entrar no namespace da rede.
    • A rede host (docker run --net=host) também tem namespace dentro do RootlessKit.
    • Montagens NFS, pois o docker "data-root" não é suportado. Esta limitação não é específica do modo sem raiz.
    4. Crie um usuário docker dedicado e protegido por senha

    Crie um usuário dedicado com o qual você acessa

    sudo -iu docker-admin-user
    
    • 1

relate perguntas

  • incapaz de extrair imagens no kubernetes do registro privado

  • Conectando-se a um host docker!

  • Qual é o propósito da instrução VOLUME em um Dockerfile?

  • Como instalo o docker no RHEL 7 offline?

  • Preciso executar este arquivo de script apenas uma vez?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve