Intentando iniciar un contenedor PostgreSQL de acuerdo con las instrucciones en https://hub.docker.com/_/postgres ( Cómo usar esta imagen → iniciar una instancia de postgres ),
docker run -e POSTGRES_PASSWORD=mysecretpassword postgres:14da el siguiente error:
ls: no se puede acceder a '/docker-entrypoint-initdb.d/': Operación no permitida
El único cambio fue eliminar el parámetro --name y -d al usar la etiqueta de versión 14 de PostgreSQL. Pero incluso con exactamente el mismo comando de Docker Hub, aparece el mismo error.
¿Por qué es eso y cómo se puede solucionar? ¿Es un error en la imagen de PostgreSQL o un problema de configuración del sistema?
Información adicional:
$ docker version Client: Version: 17.12.0-ce API version: 1.35 Go version: go1.9.2 Git commit: c97c6d6 Built: Wed Dec 27 20:10:45 2017 OS/Arch: linux/amd64 Server: Engine: Version: 17.12.0-ce API version: 1.35 (minimum version 1.12) Go version: go1.9.2 Git commit: c97c6d6 Built: Wed Dec 27 20:09:19 2017 OS/Arch: linux/amd64 Experimental: false $ uname -r 5.13.0-16-generic $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=21.10 DISTRIB_CODENAME=impish DISTRIB_DESCRIPTION="Ubuntu 21.10" $ docker images postgres:latest REPOSITORY TAG IMAGE ID CREATED SIZE postgres latest 14e58c3f6369 6 days ago 374MB $ docker images postgres:14 REPOSITORY TAG IMAGE ID CREATED SIZE postgres 14 14e58c3f6369 6 days ago 374MB Parece que funciona con postgres:14-alpine .
Me encontré con el mismo problema.
Las etiquetas 13 y 14 de PostgreSQL Docker parecen estar usando la bulleye de Debian, lo que parece cambiar las cosas con respecto al sistema de archivos.
De momento hay dos soluciones:
13-buster , es decir, la etiqueta Docker postgres:13.4-buster , ya que parece que 14 no tiene un equivalente -buster .20.10.6 , parece solucionar el problema.Como referencia al problema en GitHub relacionado con este problema, puede encontrarlo en el usuario raíz no tiene permisos dentro del contenedor #884 .
Para la posteridad, la solución de GitHub:
deberá actualizar Docker, runc y probablemente libseccomp en su host.
El problema ocurre con la versión postgres: 12.9, actualice a la versión postgres: 13-alpine solucione este problema.
Si no puede o no quiere, por cualquier motivo, actualizar Docker, una solución rápida es usar una etiqueta diferente, como postgres:14-alpine .