Este blog explicará:
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.