OS: Ubuntu 18.04 Server
Docker 18.3 CE
Estoy conectado al servidor, desde mi computadora portátil con Windows 10, usando una sesión PuTTY SSH.
No tengo Docker en mi computadora portátil Windows local, por lo que todo el trabajo se realiza en el servidor remoto.
Puedo ejecutar todos los comandos de Docker, en el servidor remoto, usando la sesión de terminal.
Sin embargo, cuando intento guardar mi imagen en el hub de Docker, cuando intento iniciar sesión, uso:
docker login
Recibo el siguiente mensaje de error:
error getting credentials - err: exit status 1, out: `GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files`
No recibí ningún mensaje de error cuando creé mi imagen en el servidor remoto.
Tampoco veo una carpeta .docker en el directorio de inicio relacionado en el servidor remoto. ¿Algunas ideas?
docker login
desde un contenedor LXD / LXC. Ese en particular lo resolví copiando.docker/config.json
desde mi host a mi$HOME/.docker/
directorio dentro del contenedor LXD / LXC, que creé manualmente. Actualmente estoy tratando de resolver otro problema, pero quería preguntar si ya lo había intentado.Respuestas:
Editar 2019-04-07:
Como esta es la respuesta actualmente seleccionada, creo que la gente debería probar primero la solución @Anish Varghese a continuación, ya que parece ser la más fácil. Solo necesita instalar los paquetes gnupg2 y pass:
Si no funciona, puede probar mi solución original aquí:
Tuve el mismo problema. La respuesta de bak2trak funcionó, pero guardó las credenciales en texto claro. Aquí está la solución si desea mantenerlos en una tienda de contraseñas.
1) Descargue docker-credential-pass desde https://github.com/docker/docker-credential-helpers/releases
2)
tar -xvf docker-credential-pass.tar.gz
3)
chmod u+x docker-credential-pass
4)
mv docker-credential-pass /usr/bin
5) Deberá configurar docker-credential-pass (los siguientes pasos se basan en https://github.com/docker/docker-credential-helpers/issues/102#issuecomment-388634452 )
5.1) instalar gpg y pasar (
apt-get install gpg pass
)5.2)
gpg --generate-key
, ingrese su información. Debería ver algo como esto:Copia la línea 123 ...
5.3)
pass init 1234567890ABCDEF1234567890ABCDEF12345678
(pegar)5.4)
pass insert docker-credential-helpers/docker-pass-initialized-check
y establezca la siguiente contraseña "se inicializa la contraseña" (sin comillas).5.5)
pass show docker-credential-helpers/docker-pass-initialized-check
. Debería ver que el paso está inicializado.5.6)
docker-credential-pass list
6) crea un ~ / .docker / config.json con:
7) el inicio de sesión de Docker ahora debería funcionar
Nota: Si obtiene el error "pass store is uninitialized" en una ejecución futura, ejecute el siguiente comando (volverá a cargar el pass store en la memoria):
Le pedirá su contraseña e inicializará la tienda de pases.
Esto se basa en esta discusión: https://github.com/moby/moby/issues/25169#issuecomment-431129898
fuente
Instalar los siguientes paquetes en ubuntu solucionó mi problema
fuente
sudo apt install pass
, el resto llegó como sus dependenciasgnupg2 pass
solucionará el problema?Enfrenté el mismo problema en ubuntu 18.08 y esto finalmente funcionó para mí ... como una solución temporal.
Había creado esta carpeta
home/.docker/
ya que algunas soluciones me sugirieron crear un archivoconfig.json
y escribir las credenciales predeterminadas en él, es decirconfig.json
.Luego se renombró docker-credential-secretservice a otra cosa para que no recoja este archivo.
sudo mv / usr / bin / docker-credential-secretservice / usr / bin / docker-credential-secretservice_x
¡Y funcionó!
fuente
org.freedesktop.secrets
. No se encuentra para ubuntu 18 (algunos problemas). Después de cambiarle el nombre (docker-credential-secretservice) a otra cosa, luego vuelve a crear el archivo de configuración por sí mismo. Puede buscar en la carpeta home / .docker que se haya creado un archivo config.json.docker-credential-secretservice
desde GH, creé un~/.docker/config.json
contenido como el anterior y luego intenté iniciar sesión. Obtuve un error. Luego eliminó la.docker
carpetaconfig.json
y el/usr/bin/docker-credential-secretservice
ejecutable y luego se ejecutódocker login
nuevamente con éxitodocker-compose
y luego ejecuté susudo mv /usr/bin/docker-credential-secretservice /usr/bin/docker-credential-secretservice_x
cambio de nombre, funcionó. ¿Alguien sabe para quédocker-credential-secretservice
se usa?Si apt install gnupg2 pass no funciona para usted, también puede instalar el paquete golang-docker-credential-helpers
fuente
Esto también puede ayudar, al menos lo hizo en Ubuntu 20.04:
https://hackernoon.com/getting-rid-of-docker-plain-text-credentials-88309e07640d https://github.com/docker/docker-credential-helpers/releases
fuente
Para mi
docker push
fallé con... así que quería,
docker login
pero obtuve lo siguiente después de ingresar las credenciales:Afortunadamente, tenía otra máquina disponible en la que pude iniciar sesión sin ningún cambio en el sistema. Copié el contenido de
~/.docker/config.json
...... a la otra máquina y
docker push
funcionó.fuente
Para mí, la solución más simple fue crear un archivo config.json en el directorio .docker dentro del directorio de inicio del usuario:
/home/.docker/config.json
Luego copié el contenido de este archivo desde el servidor desde donde pude iniciar sesión en el concentrador de Docker.
Es una solución fácil, porque no requiere que instales o actualices ningún paquete que no podamos hacer fácilmente en los servidores de producción.
fuente
Bueno, ya leíste la solución, pero el hecho es que gnupg2 ahora no está instalado de forma predeterminada en Ubuntu 18+. Esa es la razón por la que en algún momento las
apt upgrade
cosas se comportan de manera un poco diferente.fuente
Después de la respuesta tuve varios problemas.
Afortunadamente, la solución es fácil y solo necesita instalar el paquete
rng-tools
: https://stackoverflow.com/a/32941065pass init <key>
(paso 5.3)gpg: decryption failed: No secret key
apareció el error .De hecho, este problema se debe a que la clave secreta está restringida a los privilegios de root.
Cambié la propiedad de las
.gnupg .password-store
carpetas en el directorio de inicio de mi usuario.Luego recargó el directorio para evitar la advertencia de "propiedad insegura":
Si no desea hacer todo eso, puede ejecutar todos los comandos de la respuesta como root / sudo.
fuente
crear lo siguiente lo resolvió para mí:
fuente
Solución simple: simplemente elimínelo
"credsStore": "secretservice"
de ~ / .docker / config.jsonfuente
Instale los siguientes paquetes en ubuntu
Esto funcionó para mí.
fuente