‫Brandon está com o primeiro.
‫Próxima pergunta aqui vai processar contra usuário.
‫Como você prefere usar usuários não raiz em contêineres e manter as permissões de arquivo no
‫Hossain.
‫Qual é a melhor prática atual para permissões no Docker.
‫Não é justo dizer que o próprio Docker com os arquivos que você está executando
‫em um contêiner pode ser muito frustrante, especialmente se você estiver usando montagens de ligação, portanto, as montagens combinam as permissões dos arquivos
‫do host com as coisas em execução no contêiner e que geralmente podem levar você a arrancar os cabelos
‫e ficar um pouco louco e alguns dos meus projetos mais difíceis foram quando precisávamos de armazenamento de arquivos compartilhados em vários
‫servidores, para que vários contêineres em host diferente acessassem os mesmos arquivos com as permissões certas e
‫também usassem menos privilégios com usuários não administradores usuários não-raiz certos.
‫Então, esses podem ser realmente complicados.
‫Eu diria usuário versus ir.
‫Então, quando você me pergunta sobre o usuário Brandon, suponho que você esteja falando no edifício da imagem de DR, porque
‫é aí que os usuários se aplicam corretamente.
‫E isso tende a funcionar melhor do que Sue dentro da construção de um cachorro ou imagem.
‫Portanto, esse é o meu entendimento, pelo menos do porquê ir Sue é frequentemente usado dentro das imagens do Docker para
‫construção e eu realmente não sei o motivo pelo qual provavelmente o aprendi em algum momento anos atrás e depois
‫o esqueci rapidamente.
‫Portanto, estou assumindo que sua pergunta realmente está falando quando você está criando imagens
‫e eu diria que o usuário é a melhor prática para usar as linhas de arquivos do Docker se você estiver dentro de um comando run e precisar alterar as permissões em
‫uma parte específica desse comando de execução e é para lá que isso
‫me faz sentido, porque talvez você precise fazer as coisas como usuário root, mas nem sempre dentro desse comando de execução.
‫Então talvez seja quando você optar por seguir adiante e outras coisas certas.
‫Então eu acho que, em grande parte, o que acaba acontecendo com as pessoas que, com permissões, não são os
‫arquivos da imagem, são os arquivos durante o tempo de execução.
‫Portanto, assim que o contêiner iniciar, digamos que você tenha um aplicativo de nó e esse aplicativo de
‫nó em execução seja nó de usuário e tenha um diretório de upload de usuário, esses arquivos serão armazenados no host e serão
‫armazenados como o nó do usuário e porque é isso que os nós em execução estão executando, e então você tem algum outro processo, talvez um
‫contêiner diferente e usando um volume compartilhado ou algo ou uma quantia de compra e que não
‫esteja sendo executado como o mesmo usuário e precise acessar esses arquivos lidos certo e você se depara
‫com esses problemas em torno de permissões.
‫Então, eu diria que, no final do dia, se você não conseguir resolver esses problemas com o mostrado no mod, isso não acontece.
‫Em outras palavras, dentro do arquivo de janela de encaixe, se você estiver executando, por exemplo, um
‫comando de cópia em vez de um arquivo de médico, agora você pode fazer uma demonstração disso para que, ao copiar arquivos, eles sejam copiados com
‫os usuários certos aos quais foram concedidas permissões. esses arquivos você não pode executar um comando.
‫Ainda não acho que, embora possa ser um recurso que realmente seja algo, e procure muito do
‫que foi adicionado.
‫O Ducker.
‫Então, vamos à documentação oficial sobre o zoom certo e se eu for sim.
‫Então, se eu procuro cintilante, não vejo nada.
‫Mas se eu for exibido, você poderá ver onde, se usar o anúncio ou a cópia, poderá copiá-los com
‫as permissões corretas.
‫Foi algo enorme que aconteceu há um ou dois anos que nos poupa
‫muito espaço, porque não precisamos alterar as permissões nos arquivos que estão na etapa um, se você precisar
‫alterar as permissões dos diretórios em tempo de execução como você precisa ter um volume definido para determinadas permissões.
‫É para isso que serve um script de ponto de entrada.
‫Portanto, se você olhasse para um exemplo, como se apenas voltássemos para o Docker Hub e eu fosse para a minha sequela e se
‫você fosse a um desses arquivos do Docker, provavelmente descobriria que existe um ponto de entrada script especialmente com coisas como
‫bancos de dados e um script de ponto de entrada, algo que pode iniciar toda
‫vez que um contêiner é iniciado e, freqüentemente, nesses scripts de pontos de entrada, você verá coisas como
‫eu preciso que você mostre tudo neste diretório e modifique-o ou você sabe um global mais certo ou algo que
‫nem sempre é a coisa mais segura a se fazer, mas se você precisar alterar as permissões
‫em tempo real, faça isso dentro do script.
‫Agora, claro, o problema neste script é que ele está sendo executado como o usuário que eu acredito, assim como o usuário
‫que você definiu em um arquivo docker, tornando-se outro problema, porque se você precisar alterar as permissões
‫nos arquivos para torná-los legíveis e legível pelo usuário do nó, mas como o script está sendo executado como
‫usuário do nó, você tem problemas porque não pode ir para o roteamento.
‫Essencialmente nesse ponto.
‫Então, eu diria que não há uma solução fácil ou melhor para isso, mas permissões é algo
‫que você provavelmente poderia escrever uma seção do curso inteira sobre uma sessão de treinamento de várias horas sobre as várias maneiras pelas quais
‫as permissões são tratadas.
‫Um pequeno petisco lá.
‫A última coisa que direi é que sei que estou meio que
‫respondendo à sua pergunta, mas acho que surge algo muito grande: as permissões de arquivo no Linux são apenas números.
‫Na verdade, essa é uma dica que me foi dada, penso por Phil Estes, alguém que implementou
‫o espaço para nome que o espaço para nome do usuário emite.
‫Sinto muito pelo recurso de espaço para nome do usuário no Docker, que não foi ativado por padrão.
‫Mas se você quiser que todos os seus contêineres sejam executados como não raiz, você o ativaria.
‫E ele foi um dos que ajudaram a adicionar esse recurso. Estávamos conversando um dia e ele apontou que você
‫conhece o usuário I. D. e o grupo I. D. são apenas idéias que você pode definir esse número
‫para o que quiser.
‫Eles são apenas números.
‫E, portanto, se você precisar de arquivos no host, por exemplo, para coincidir com os contêineres, basta
‫definir tudo por I. D. número, então os nomes de usuário são realmente irrelevantes nesse ponto.
‫Eles é realmente o eu. D. que ele procurará corresponder a essas permissões.
‫Portanto, em um caso em que eu estava trabalhando em um projeto e precisávamos compartilhar arquivos em vários contêineres,
‫mas todos estavam sendo executados como usuários diferentes e precisávamos garantir que as permissões correspondessem.
‫Nós realmente apenas nos certificamos manualmente de que esses arquivos estavam usando os números certos ou eu. D. para o proprietário e o grupo e
‫tudo começou a funcionar porque isso realmente não importava que não tivéssemos o usuário criado no host, por
‫exemplo, que correspondia àquele I. D. dentro do recipiente.
‫Acabamos de garantir que eu. D. números coincidiram, então essa é uma pequena dica.
‫Demorei um pouco para descobrir isso e entender como isso funcionava, mas realmente no
‫final do dia não está fazendo comparação para garantir que os números das leituras, direitos e permissões correspondam
‫ao que o usuário que está executando o comando está fazendo.
‫Boa pergunta.
‫Fico feliz que você tenha trazido isso à tona, porque isso não é algo que discutimos
‫aqui recentemente e deveríamos falar mais sobre isso.