如何将Postresql移动到Docker中的RAM磁盘?

我想运行Docker镜像postgres:9 ,停止Postgres,将它移动到/dev/shm ,然后重新启动它,所以我可以非常快地运行我的应用程序testing。

但是当我试图阻止Postgres在容器中使用postgrespg_ctl我得到告诉cannot be run as root

由于所有的Docker容器以root用户身份login,我可以做些什么来运行Postgres命令?

在重新启动之前,需要将哪些文件夹移动到/dev/shm


如果你想尝试这个命令来启动容器docker run -it postgres:9 bash cd /usr/lib/postgresql/9.6/bin ./pg_ctl stop

在容器中挂载一个tmpfs并将PostgreSQL数据指向它

 docker run --tmpfs=/pgtmpfs -e PGDATA=/pgtmpfs postgres:9 

请注意,默认的tmpfs大小是65536k,请使用size=Nk来修改它。

 --tmpfs /pgtmpfs:size=131072k 

MySQL也可以做同样的事情

 docker run --tmpfs=/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql:8