Hi Guys,
Today I would be discussing about one of the problem that I have encountered while starting PostgreSQL on a docker container. This is the very first time we are calling any container to run on this machine. The error says something like ‘OCI runtime create failed: container_linux.go:349’, followed by “process_linux.go:449: container init caused: permission denied”.I was totally dumbstruck as the error doesn’t give us any clue or idea where and what is failing.
The exact error is given below, and is simulated case on my personal sandbox, but with exact error and issue.
[root@fatdba-doccass ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
postgres latest 817f2d3d51ec 4 days ago 314MB
[root@fatdba-doccass ~]# docker run --name postgres -e POSTGRES_PASSWORD=postgres -d postgres
c90d92ea603044d72ffed2449e550bfd39d328beacb6a55e17c4515861f86140
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused
\"write /proc/self/attr/keycreate: permission denied\"": unknown.
I remember we fixed something similar, not exactly the same on one another docker setup, where we disabled the SELINUX and that worked for me. So, we planned to give it a try to see if that works, this being a test setup, we didn’t hesitate to try the said option. It was set up to value ‘ENFORCING’ and we will have to set it to value ‘disabled’ and reboot the machine.
[root@fatdba-doccass ~]# more /etc/selinux/config |grep "SELINUX="
SELINUX=disabled
[root@fatdba-doccass ~]# reboot
Now, when the system is back, we are all set to run the postgresql image.
[root@fatdba-doccass ~]# docker run --name postgres -e POSTGRES_PASSWORD=postgres -d postgres
6aebd2ea4304202980daeff761857f5aa53deaf51cf7d13b1d00974219b6f80c
[root@fatdba-doccass ~]#
[root@fatdba-doccass ~]#
Awesome, it worked, let’s check the status of the container.
[root@fatdba-doccass ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6aebd2ea4304 postgres "docker-entrypoint.s…" 8 seconds ago Up 4 seconds 5432/tcp postgres
[root@fatdba-doccass ~]#
[root@fatdba-doccass ~]#
Next, we tried to connect with the host and psql terminal and that worked too!
[root@fatdba-doccass ~]# docker exec -it fatdba_psql bash
Error: No such container: fatdba_psql
[root@fatdba-doccass ~]# docker exec -it postgres bash
root@6aebd2ea4304:/#
root@6aebd2ea4304:/# psql -U postgres postgres
psql (13.0 (Debian 13.0-1.pgdg100+1))
Type "help" for help.
postgres=#
postgres=# select version();
version
------------------------------------------------------------------------------------------------------------------
PostgreSQL 13.0 (Debian 13.0-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
(1 row)
postgres=#
postgres=#
postgres-# \dt+
List of relations
Schema | Name | Type | Owner | Persistence | Size | Description
--------+-------+-------+----------+-------------+------------+-------------
public | dixit | table | postgres | permanent | 8192 bytes |
Hope That Helped!
Prashant Dixit