Problema con la ventana acoplable: no se pudo obtener la conexión D-Bus: operación no permitida solución

Catálogo de series relacionadas con el tutorial de uso de Docker


No hay ninguna operación de captura de pantalla en la publicación del blog original y hay problemas sutiles. Se ha corregido y reordenado, y se ha reproducido el problema para solucionarlo.

Problema reproducido:

Los amigos que están comenzando a entrar en contacto con Docker pueden encontrar este problema. Después de crear un contenedor con una imagen centos7, use systemctl para iniciar el servicio e informar un error. En respuesta a este error, ¡lo analizaremos a continuación!

# docker run -itd --name centos7 centos:7

# docker attach centos7

# yum install vsftpd

# systemctl start vsftpd

 报错 : No se pudo obtener la conexión D-Bus: operación no permitida

solución:

Primero detenga el servicio del contenedor creado originalmente y elimínelo

docker stop centos7

docker rm centos7

Ejecute el contenedor en modo privilegiado.

docker run -d --name centos7 --privileged=true centos:7 /usr/sbin/init

Ingrese al contenedor:

docker exec -it centos7 /bin/bash
# yum install vsftpd

# systemctl start vsftpd

 

Analiza las razones:

La filosofía de diseño de Docker no es ejecutar servicios en segundo plano en el contenedor. El contenedor en sí es un proceso principal independiente en el host. También puede entenderse indirectamente como el proceso de aplicación que ejecuta el servicio en el contenedor. El ciclo de vida de un contenedor gira en torno al proceso principal, por lo que la forma correcta de usar el contenedor es ejecutar los servicios que contiene en primer plano.

Hablando de systemd, esta suite se ha convertido en la gestión de servicios predeterminada de las distribuciones principales de Linux (como CentOS7, Ubuntu14 +), reemplazando la gestión de servicios de estilo SystemV tradicional. systemd mantiene un programa de servicio del sistema, que requiere privilegios para acceder al kernel de Linux. Y el contenedor no es un sistema operativo completo, solo un sistema de archivos, y el inicio predeterminado es solo un acceso de usuario normal al kernel de Linux, es decir, sin privilegios, ¡así que, naturalmente, no se usará!

Por lo tanto, siga los principios de diseño de contenedores y ejecute un servicio de primer plano en un contenedor.

 

Supongo que te gusta

Origin blog.csdn.net/shi_hong_fei_hei/article/details/115337684
Recomendado
Clasificación