Docker迁移和权限问题

Docker迁移和权限问题

我开始将机器 A (Debian Stretch) 上的 docker 主机的内容迁移到机器 B (Debian Buster)。我使用 rsync 复制了我的卷 /var/lib/openproject{pgdata, static}。现在看来,机器 B 上的权限是错误的。

docker logs 显示以下内容:

Starting PostgreSQL 9.6 database server: mainError: Config owner (postgres:102) and data owner (app:1000)
do not match, and config owner is not root ... failed!

在这种情况下,正确的权限是什么?谢谢您的回答。

答案1

我检查了我的docker postgresql,看起来像这样

ls -l /var/lib/postgresql/
drwx------   19 postgres root          4096 Aug 23 03:07 data

以及数据目录内

-rw-------    1 postgres postgres         3 May 17 02:05 PG_VERSION
drwx------    9 postgres postgres      4096 Jul  9 03:26 base
drwx------    2 postgres postgres      4096 Aug 23 03:08 global
drwx------    2 postgres postgres      4096 May 17 02:05 pg_commit_ts
drwx------    2 postgres postgres      4096 May 17 02:05 pg_dynshmem
-rw-------    1 postgres postgres      4535 May 17 02:05 pg_hba.conf
-rw-------    1 postgres postgres      1636 May 17 02:05 pg_ident.conf
drwx------    4 postgres postgres      4096 Aug 24 08:28 pg_logical
drwx------    4 postgres postgres      4096 May 17 02:05 pg_multixact
drwx------    2 postgres postgres      4096 Aug 23 03:07 pg_notify
drwx------    2 postgres postgres      4096 May 17 02:05 pg_replslot
drwx------    2 postgres postgres      4096 May 17 02:05 pg_serial
drwx------    2 postgres postgres      4096 May 17 02:05 pg_snapshots
drwx------    2 postgres postgres      4096 Aug 23 03:07 pg_stat
drwx------    2 postgres postgres      4096 Aug 24 08:30 pg_stat_tmp
drwx------    2 postgres postgres      4096 Aug 23 04:47 pg_subtrans
drwx------    2 postgres postgres      4096 May 17 02:05 pg_tblspc
drwx------    2 postgres postgres      4096 May 17 02:05 pg_twophase
drwx------    3 postgres postgres      4096 Aug 24 08:03 pg_wal
drwx------    2 postgres postgres      4096 Aug  6 19:21 pg_xact
-rw-------    1 postgres postgres        88 May 17 02:05 postgresql.auto.conf
-rw-------    1 postgres postgres     23841 May 17 02:05 postgresql.conf
-rw-------    1 postgres postgres        24 Aug 23 03:07 postmaster.opts
-rw-------    1 postgres postgres        94 Aug 23 03:07 postmaster.pid

所以基本上你必须改变所有权

chow postgres:root /var/lib/postgresql/
chow -R postgres:postgres /var/lib/postgresql/data

以及权限

find /var/lib/postgresql/ -type d -exec chmod 700 {} \;
find /var/lib/postgresql/ -type f -exec chmod 600 {} \;

相关内容