Devo executar recipientes privilegiados de docker?

Devo executar recipientes privilegiados de docker?
Os contêineres do Docker são o principal componente da plataforma Docker que permite aos desenvolvedores construir e implantar o programa no ambiente de tempo de execução virtualizado. Eles são gerenciados e instruídos por imagens do Docker. O contêiner do Docker encapsula o projeto e todas as suas dependências. Os contêineres do docker podem ser executados no modo privilegiado, uma função poderosa da plataforma Docker que permite que os programadores executem contêineres com acesso raiz, o que significa que os contêineres podem acessar privilégios de host completos

Este blog explicará:

  • Você deve executar contêineres privilegiados do Docker?
  • Como executar o contêiner do Docker em modo privilegiado?

Você deve executar contêineres privilegiados do Docker?

A execução de contêineres em modo privilegiada não é aconselhada porque é arriscado. Como o modo privilegiado, o contêiner raiz terá acesso total como usuário root do host e evitar todas as verificações. Outra razão é que, se os recursos de hardware do host e o kernel forem expostos a um atacante externo, o sistema poderá estar constantemente em perigo. No entanto, a execução do contêiner privilegiado é necessária para algumas situações, como a execução do Docker dentro de outra plataforma Docker.

Como executar um contêiner privilegiado do Docker?

Para executar os contêineres do Docker em um modo privilegiado para conceder privilégios de host, siga as instruções fornecidas.

Etapa 1: Crie Dockerfile

Primeiro, abra o editor de código do Visual Studio e crie um novo Dockerfile. Depois disso, cole o seguinte código em “Dockerfile" como mostrado abaixo. Essas instruções executarão o programa simples de Golang no servidor:

De Golang: 1.8 como construtor
Workdir/go/src/app
Cópia principal.ir .
Run Go Build -O WebServer .
Cmd ["./servidor web"]

Etapa 2: Criar arquivo de programa

Em seguida, crie um “principal.ir”Arquive e cola o seguinte código de Golang no arquivo. Isso exibirá o “Olá! Bem -vindo ao Tutorial Linuxhint”:

Pacote principal
importação (
"FMT"
"registro"
"net/http"
)
FuChandler (W HTTP.ResponseWriter, r *http.Solicitar)
fmt.Fprintf (w, "Olá! Bem -vindo ao Tutorial Linuxhint ")

funcmain ()
http.Handlefunc ("/", manipulador)
registro.Fatal (http.ListenAndServe ("0.0.0.0: 8080 ", nil))

Etapa 3: Construa a imagem do Docker

Depois disso, construa a nova imagem do Docker usando o comando fornecido. O "-t”A bandeira é utilizada para especificar a tag ou nome da imagem do docker:

$ Docker Build -t Golang: mais recente .

Etapa 4: Execute o contêiner do Docker no modo privilegiado

Em seguida, execute o contêiner do docker em modo privilegiado, executando a imagem recém -criada junto com o “-privilegiado”Opção. Aqui o "-d”A opção é usada para executar o contêiner em segundo plano, e o“-p”A opção é utilizada para especificar o número da porta para o host local:

$ Docker Run -Privileged -d -p 8080: 8080 Golang

Então, navegue para o “LocalHost: 8080”Para verificar se o aplicativo está em execução ou não:


Pode -se observar que implantamos com sucesso o programa e executamos o contêiner em modo privilegiado.

Etapa 5: Liste os contêineres do Docker

Liste todos os recipientes com a ajuda do “Docker PS”Comando junto com o“-a”Opção:

$ docker ps -a

Observe o ID do contêiner para verificar se está em execução no modo privilegiado ou não:

Etapa 6: o contêiner de verificação está em execução no modo privilegiado

Para verificar se o contêiner está sendo executado em modo privilegiado ou não, utilize o “Docker inspecionar”Comando, juntamente com o formato mencionado e o ID de contêiner copiado:

$ Docker inspecionar - -format = '.HostConfig.Privilegiado 'B46571B87EFD

O "verdadeiro”A saída significa que o contêiner está em execução no modo privilegiado:

Novamente, execute o comando fornecido com outro ID de contêiner:

$ Docker inspecionar - -format = '.HostConfig.Privilegiado 'd3187ab39ee9

Aqui, você pode ver o “falso”Saída que indica o contêiner que possui um ID especificado não está em execução no modo privilegiado:


Discutimos se os usuários devem executar o contêiner do Docker em modo privilegiado.

Conclusão

Não, não é recomendável executar contêineres em modo privilegiado, pois cria um risco de segurança. Os contêineres com acesso raiz têm privilégios completos como acesso raiz do host e evitarão todas as verificações. Para executar o contêiner do docker com modo privilegiado, use o “Docker Run -privilegiado”Comando. Este artigo foi elaborado sobre se você deve executar contêineres privilegiados do Docker.